public class A<T1>
{
	public T1 a;

	public class B<T2> : A<T2>
	{
		public T1 b;

		public class C<T3> : B<T3>
		{
			public T1 c;
		}
	}
}

class PopQuiz
{
	public static int Main()
	{
		A<int>.B<char>.C<bool> o = new A<int>.B<char>.C<bool>();
		string s = o.a.GetType().FullName;
		System.Console.WriteLine(s);
		if (s != "System.Boolean")
			return 1;

		s = o.b.GetType().FullName;
		System.Console.WriteLine(s);
		if (s != "System.Char")
			return 2;
		
		s = o.c.GetType().FullName;
		System.Console.WriteLine();
		if (s != "System.Int32")
			return 3;
		
		return 0;
	}
}