#include <iostream>
using namespace std;
struct A {
int a;
A(int x);
void print();
};
struct B : A {
int b;
B(int x, int y);
void print();
};
struct C : B {
int c;
C(int x, int y, int z);
void print();
};
A::A(int x):a(x) {
}
void A::print() {
cout << a << endl;
}
B::B(int x, int y):A(x),b(y) {
}
void B::print() {
A::print();
cout << b << endl;
}
C::C(int x, int y, int z):B(x,y),c(z) {
}
void C::print() {
B::print();
cout << c << endl;
}
int main() {
C c = {1,2,3};
c.print();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEEgewogIGludCBhOwogIEEoaW50IHgpOwogIHZvaWQgcHJpbnQoKTsKfTsKCnN0cnVjdCBCIDogQSB7CiAgaW50IGI7CiAgQihpbnQgeCwgaW50IHkpOwogIHZvaWQgcHJpbnQoKTsKfTsKCnN0cnVjdCBDIDogQiB7CiAgaW50IGM7CiAgQyhpbnQgeCwgaW50IHksIGludCB6KTsKICB2b2lkIHByaW50KCk7Cn07CgpBOjpBKGludCB4KTphKHgpIHsKfQoKdm9pZCBBOjpwcmludCgpIHsKICBjb3V0IDw8IGEgPDwgZW5kbDsKfQoKQjo6QihpbnQgeCwgaW50IHkpOkEoeCksYih5KSB7Cn0KCnZvaWQgQjo6cHJpbnQoKSB7CiAgQTo6cHJpbnQoKTsKICBjb3V0IDw8IGIgPDwgZW5kbDsKfQoKQzo6QyhpbnQgeCwgaW50IHksIGludCB6KTpCKHgseSksYyh6KSB7Cn0KCnZvaWQgQzo6cHJpbnQoKSB7CiAgQjo6cHJpbnQoKTsKICBjb3V0IDw8IGMgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgQyBjID0gezEsMiwzfTsKICBjLnByaW50KCk7CiAgcmV0dXJuIDA7Cn0K