#include <iostream>
using namespace std;

class A
{
    public:
    A(){cout << "I am in the A constructor " << endl;}
    ~A(){cout << "I am In the A destructor "<< endl;}
};

class AX
{
    public:
    AX(){cout<<"I am in the AX constructor" << endl;}
    ~AX(){cout <<"I am in the AX destructor" << endl;}
    AX(int x){cout<<"I am in AX param constructor"<< endl;}

};
class AXX
{
    public:
    AXX(){cout << "I amin the AXX constructor"<<endl;}
    ~AXX(){cout << "I am in the AXX destructor "<< endl;}
    AXX(int x)
    {
        cout <<"I am in the AXX param constructor" << endl;
    }
};
 class B : public A
{
     AX ax;
     AXX axx;
    public:
     B():axx(6){cout <<"I amin B constructor"<< endl;}
     ~B(){cout << "I am in  the B destrcuctor "<< endl;}
 };
 class C : public B
 {
     AXX axx;
     AX ax;
     public : 
     C() : ax(5),axx(6) {cout << "I am in c constructor" << endl;}
          ~C(){cout << "I am in the c destructor" << endl;}
 };
int main() {
    // your code goes here
    C c1;
    return 0;
}