class X {                           
    private int m;                                                //(A)
    private static int n = 300;                                   //(B)

    public class Y{                        
        private int m;                                            //(C)
        private int n;                                            //(D)
        public Y() { 
            this.m = X.this.m;                                    //(E)
            this.n = X.this.n;                                    //(F)
        }
        public String toString() { 
            return "inner's state: " + this.m + "  " +  this.n; 
        } 
    }

    public X( int mm ) { m = mm; }                                //(G) 
}

class Test {
    public static void main( String[] args ) {
        X x = new X( 100 );                    
        X.Y y = x.new Y();               
        System.out.println( y );                // 100 300
    }
}