#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) { cout << "a"<< m_value;}
B::B(A& a, int v) : m_a(a) ,m_value(v) { cout << "b"<< m_value<<"m_a"<<m_a.m_value;}
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;
}
B b;
A a;
};
int main() {
C c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQTsKY2xhc3MgQjsKCmNsYXNzIEEgCnsKcHVibGljOgoJQShCJiBiLCBpbnQgdik7CgkKCUImIG1fYjsKCWludCBtX3ZhbHVlOwp9OwoKY2xhc3MgQgp7CnB1YmxpYzoKICAgIEIoQSYgYSwgaW50IHYpOwogICAgCiAgICBBJiBtX2E7CiAgICBpbnQgbV92YWx1ZTsKfTsKCkE6OkEoQiYgYiwgaW50IHYpIDogbV9iKGIpLCBtX3ZhbHVlKHYpIHsgY291dCA8PCAiYSI8PCBtX3ZhbHVlO30KQjo6QihBJiBhLCBpbnQgdikgOiBtX2EoYSkgLG1fdmFsdWUodikgeyBjb3V0IDw8ICJiIjw8IG1fdmFsdWU8PCJtX2EiPDxtX2EubV92YWx1ZTt9CgoKY2xhc3MgQwp7CnB1YmxpYzoKICAgIEMoKSA6IGEoYiwgMiksIGIoYSwgNSkgewogICAgCWNvdXQgPDwgYS5tX3ZhbHVlOwogICAgCWNvdXQgPDwgYi5tX3ZhbHVlOwogICAgCWNvdXQgPDwgYS5tX2IubV92YWx1ZTsKICAgIAljb3V0IDw8IGIubV9hLm1fdmFsdWU7CiAgICB9CgkKCUIgYjsKCUEgYTsKfTsKCQoKaW50IG1haW4oKSB7CglDIGM7CglyZXR1cm4gMDsKfQ==