#include <iostream>

using namespace std;

class V1 {
public:
  V1() { cout << "V1()" << endl; }
};

class V2 {
public:
  V2() { cout << "V2()" << endl; }
};

class A {
public:
  A() { cout << "A()" << endl; }
};

class B : virtual V1 {
public:
  B() { cout << "B()" << endl; }
};

class C : B, virtual V2 {
public:
  C() { cout << "C()" << endl; }
};

class D : C, virtual V1 {
public:
  D() { cout << "D()" << endl; }
private:
  A a_object;
};


int main() {
  D d;
}

