#include<iostream>
using namespace std;
class A
{
private:
int a,b;
public:
A(int a, int b)
{
this->a=a;
this->b=b;
}
void setVar(int a,int b)
{
this->a=a;
this->b=b;
}
int getA()
{
return a;
}
int getB()
{
return b;
}
};
class B
{
private:
string s1;
protected:
double d;
public:
B(string s1,double d)
{
this->s1=s1;
this->d=d;
}
void setVar2(string s1,double d)
{
this->s1=s1;
this->d=d;
}
string getS1()
{
return s1;
}
double getD()
{
return d;
}
};
class C: private A, protected B
{
public:
string s2;
C(int a, int b,string s1, double d,string s2): A(a,b),B(s1,d)
{
this->s2=s2;
}
void setDelVar(int a,int b,string s1,double d)
{
setVar(a,b);
setVar2(s1,d);
}
int getDelA()
{
return getA();
}
int getDelB()
{
return getB();
}
string getDelS1()
{
return getS1();
}
double getDelD()
{
return getD();
}
string getS2()
{
return s2;
}
};
class D: public C
{
public:
D(int a,int b,string s1,double d, string s2): C(a,b,s1,d,s2)
{}
};
void display(D d)
{
cout<<d.getDelA()<<" "<<d.getDelB()<<" "<<d.getDelS1()<<" "<<d.getDelD()<<" "<<d.getS2()<<endl;
}
int main()
{
D d(5,6,"s",7.8,"ss");
display(d);
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpjbGFzcyBBCnsKcHJpdmF0ZToKICAgIGludCBhLGI7CnB1YmxpYzoKICAgIEEoaW50IGEsIGludCBiKQogICAgewogICAgICAgIHRoaXMtPmE9YTsKICAgICAgICB0aGlzLT5iPWI7CiAgICB9CiAgICB2b2lkIHNldFZhcihpbnQgYSxpbnQgYikKICAgIHsKICAgICAgICB0aGlzLT5hPWE7CiAgICAgICAgdGhpcy0+Yj1iOwogICAgfQogICAgaW50IGdldEEoKQogICAgewogICAgICAgIHJldHVybiBhOwogICAgfQogICAgaW50IGdldEIoKQogICAgewogICAgICAgIHJldHVybiBiOwogICAgfQp9OwpjbGFzcyBCCnsKcHJpdmF0ZToKICAgIHN0cmluZyBzMTsKcHJvdGVjdGVkOgogICAgZG91YmxlIGQ7CnB1YmxpYzoKICAgIEIoc3RyaW5nIHMxLGRvdWJsZSBkKQogICAgewogICAgICAgIHRoaXMtPnMxPXMxOwogICAgICAgIHRoaXMtPmQ9ZDsKICAgIH0KICAgIHZvaWQgc2V0VmFyMihzdHJpbmcgczEsZG91YmxlIGQpCiAgICB7CiAgICAgICAgdGhpcy0+czE9czE7CiAgICAgICAgdGhpcy0+ZD1kOwogICAgfQogICAgc3RyaW5nIGdldFMxKCkKICAgIHsKICAgICAgICByZXR1cm4gczE7CiAgICB9CiAgICBkb3VibGUgZ2V0RCgpCiAgICB7CiAgICAgICAgcmV0dXJuIGQ7CiAgICB9Cn07CgpjbGFzcyBDOiBwcml2YXRlIEEsIHByb3RlY3RlZCBCCnsKcHVibGljOgogICAgc3RyaW5nIHMyOwogICAgQyhpbnQgYSwgaW50IGIsc3RyaW5nIHMxLCBkb3VibGUgZCxzdHJpbmcgczIpOiBBKGEsYiksQihzMSxkKQogICAgewogICAgICAgIHRoaXMtPnMyPXMyOwogICAgfQogICAgdm9pZCBzZXREZWxWYXIoaW50IGEsaW50IGIsc3RyaW5nIHMxLGRvdWJsZSBkKQogICAgewogICAgICAgIHNldFZhcihhLGIpOwogICAgICAgIHNldFZhcjIoczEsZCk7CiAgICB9CiAgICBpbnQgZ2V0RGVsQSgpCiAgICB7CiAgICAgICAgcmV0dXJuIGdldEEoKTsKICAgIH0KICAgIGludCBnZXREZWxCKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0QigpOwogICAgfQogICAgc3RyaW5nIGdldERlbFMxKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0UzEoKTsKICAgIH0KICAgIGRvdWJsZSBnZXREZWxEKCkKICAgIHsKICAgICAgICByZXR1cm4gZ2V0RCgpOwogICAgfQogICAgc3RyaW5nIGdldFMyKCkKICAgIHsKICAgICAgICByZXR1cm4gczI7CiAgICB9Cgp9OwoKY2xhc3MgRDogcHVibGljIEMKewpwdWJsaWM6CiAgICBEKGludCBhLGludCBiLHN0cmluZyBzMSxkb3VibGUgZCwgc3RyaW5nIHMyKTogQyhhLGIsczEsZCxzMikKICAgIHt9Cn07Cgp2b2lkIGRpc3BsYXkoRCBkKQp7CiAgICBjb3V0PDxkLmdldERlbEEoKTw8IiAiPDxkLmdldERlbEIoKTw8IiAiPDxkLmdldERlbFMxKCk8PCIgIjw8ZC5nZXREZWxEKCk8PCIgIjw8ZC5nZXRTMigpPDxlbmRsOwp9CgppbnQgbWFpbigpCnsKCiAgICBEIGQoNSw2LCJzIiw3LjgsInNzIik7CiAgICBkaXNwbGF5KGQpOwp9CgoK