#include <iostream>
using namespace std;
class A
{
int i;
public:
A() { i = 7; cout << 1 << f() << i << '/'; }
A(int i) :i(i) { cout << 1 << f() << i << '/'; }
char f() { return 'A'; }
};
class B : public virtual A
{
int i;
public:
B(int i) : A(i), i(++i) { cout << 2 << i << '/'; }
virtual char f() { return 'B'; }
};
class C : public virtual A {
public:
C(int i) : A(i) { cout << 3 << i << '/'; }
virtual char f() { return 'C'; }
};
class D :public A {
public:
D(int i) { cout << 4 << i << '/'; }
virtual char f() { return 'D'; }
};
class E : public B, public C, public D {
public:
E() : B(2), C(3), D(4) { cout << 5; }
virtual char f() { return 'E'; }
};
int main()
{
E e;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQQp7CiAgICBpbnQgaTsKcHVibGljOgogICAgQSgpIHsgaSA9IDc7IGNvdXQgPDwgMSA8PCBmKCkgPDwgaSA8PCAnLyc7IH0KICAgIEEoaW50IGkpIDppKGkpIHsgY291dCA8PCAxIDw8IGYoKSA8PCBpIDw8ICcvJzsgfQogICAgY2hhciBmKCkgeyByZXR1cm4gJ0EnOyB9Cn07CmNsYXNzIEIgOiBwdWJsaWMgdmlydHVhbCBBCnsKICAgIGludCBpOwpwdWJsaWM6CiAgICBCKGludCBpKSA6IEEoaSksIGkoKytpKSB7IGNvdXQgPDwgMiA8PCBpIDw8ICcvJzsgfQogICAgdmlydHVhbCBjaGFyIGYoKSB7IHJldHVybiAnQic7IH0KfTsKY2xhc3MgQyA6IHB1YmxpYyB2aXJ0dWFsIEEgewpwdWJsaWM6CiAgICBDKGludCBpKSA6IEEoaSkgeyBjb3V0IDw8IDMgPDwgaSA8PCAnLyc7IH0KICAgIHZpcnR1YWwgY2hhciBmKCkgeyByZXR1cm4gJ0MnOyB9Cn07CmNsYXNzIEQgOnB1YmxpYyBBIHsKcHVibGljOgogICAgRChpbnQgaSkgeyBjb3V0IDw8IDQgPDwgaSA8PCAnLyc7IH0KICAgIHZpcnR1YWwgY2hhciBmKCkgeyByZXR1cm4gJ0QnOyB9Cn07CmNsYXNzIEUgOiBwdWJsaWMgQiwgcHVibGljIEMsIHB1YmxpYyBEIHsKcHVibGljOgogICAgRSgpIDogQigyKSwgQygzKSwgRCg0KSB7IGNvdXQgPDwgNTsgfQogICAgdmlydHVhbCBjaGFyIGYoKSB7IHJldHVybiAnRSc7IH0KfTsKaW50IG1haW4oKQp7CiAgICBFIGU7CiAgICByZXR1cm4gMDsKfQ==