What will happend when you compile and run the following code:

class Base1
{
    static {new Base2();}
    public Base1() {System.out.println("Base1");}
}

class Base2
{
    static {new Base1();}
    public Base2() {System.out.println("Base2");}
}

public class X
{
    public static void main(String argv[])
    {
        Base2 b2 = new Base2();
    }
}
A) Output Base2 Base1 Base2
B) Output Base1 Base2
C) Output Base2 Base1
D) Output Base1 Base2 Base1
E) Output Base1 Base2 Base1 Base2