#include <iostream>
using namespace std;

class B1{
    int a;
public:
    B1(int x): a(x) {}
    void show() { cout <<"B1= "<< a << "\n"; }
};

class B2{
    int b;
public:
    B2(int x) { b=x; }
    void show() { cout << "B2= "<< b << "\n";}
};

class D1: public B1, public B2{
    int c;
public:
    D1(int x, int y, int l) : c(x), B1(y), B2(l) {};
    void show() { cout <<"D1= "<< c << "\n"; B1::show(); B2::show();}
};

class D2 {
    int d;
public:
    D2(int x): d(x) {};
    void show() { cout <<"D2= "<< d << "\n"; }
};

class D3: public D1, public D2 {
    int e;
public:
    D3(int a, int b, int c, int d, int x):e(x),D1(a,b,c),D2(d) {}
    void show() {cout <<"D3= "<< e << "\n"; D1::show(); D2::show();}
};
class D4: public D3 {
    int f;
public:
    D4(int x, int i, int p, int q, int e, int k): f(x), D3(i,p,q,e,k) {};
    void show() { cout <<"D4= "<< f << "\n"; D3::show() ;}
};

int main() {
    D2 temp(100);
    D4 temp1(1,2,3,4,5,6);
    cout << "D2 temp(100,200,300,400,500);\n";
    cout << "D4 temp1(1,2,3,4,5);\n";
    cout<< "\nСледуя иерархии класса D4\n";
    temp1.show();
}
