class ATop<T> : IA<T>
{
	IA<T> list;
	
	T[] IB<T>.ToArray (T[] t)
	{
		return null;
	}
	
	void IC.ToArray ()
	{
	}
	
	public void Test ()
	{
		list = this;
		list.ToArray (new T [0]);
		list.ToArray ();
	}
}

interface IA<U> : IC, IB<U>
{
}

interface IB<V> : IC
{
	V[] ToArray (V[] array);
}

interface IC
{
	void ToArray ();
}

class M
{
	public static int Main ()
	{
		new ATop<short>().Test ();
		return 0;
	}
}