import java.lang.reflect.InvocationTargetException;

public class Main {
	static class    C             { public C()    { System.out.println("C");    } }
	static class   CC extends C   { public CC()   { System.out.println("CC");   } }
	static class  CCC extends CC  { public CCC()  { System.out.println("CCC");  } }
	static class CCCC extends CCC { public CCCC() { System.out.println("CCCC"); } }

	public static void main(String[] args)
			throws NoSuchMethodException, IllegalAccessException,
			InvocationTargetException, InstantiationException {

		Class<?> cClass = CCCC.class;
		while (!cClass.getSuperclass().equals(Object.class)) {
			cClass = cClass.getSuperclass();
		}
		
		System.out.println(cClass.getSimpleName());
		
		cClass.newInstance();
	}
}