class Outerclass
{
	class Innerclass
	{
		//non-static inner class OR known by Inner class
		void m1()
		{
			System.out.println("I am from Innerclass");
		}

	}
	static class NestedStaticClass
	{
		//static nested class OR known by Nested Class
		void m2()
		{
			System.out.println("I am from NestedStaticClass");
		}
	}
}

class InnerApp 
{
	public static void main(String[] args) 
	{
	Outerclass.NestedStaticClass obj=new Outerclass.NestedStaticClass();
						obj.m2();
	Outerclass.Innerclass obj5=new Outerclass.Innerclass(); //Compilation Err

	Outerclass obj1=new Outerclass();

	Outerclass.Innerclass obj2=obj1.new Innerclass();
						obj2.m1();
	}
}