using System;
class Base
{
	protected string H {
		get {
			return "Base.H";
		}
	}
}

// #1
class X {
	class Derived : Base
	{
		public class Nested : Base
		{
			public void G() {
				Derived[] d = new Derived[0];
				Console.WriteLine(d[0].H);
			}
		}
	}
}

// #2
class Derived: Base
{
	public class Nested : Base
	{
		public void G() {
			Derived d = new Derived();
			Console.WriteLine(d.H);
		}
	}
}


class Test
{
	static void Main()
	{
	}
}