#include <iostream>
using namespace std;

class A;
class B;

class A 
{
public:
	A(B& b, int v);
	
	B& m_b;
	int m_value;
};

class B
{
public:
    B(A& a, int v);
    
    A& m_a;
    int m_value;
};

A::A(B& b, int v) : m_b(b), m_value(v) { }
B::B(A& a, int v) : m_a(a) ,m_value(v) { }


class C
{
public:
    C() : a(b, 2), b(a, 5) {
    	cout << a.m_value;
    	cout << b.m_value;
    	cout << a.m_b.m_value;
    	cout << b.m_a.m_value;
    }
	
	A a;
	B b;
};
	

int main() {
	C c;
	return 0;
}