#include <iostream>
using namespace std;
struct A;
struct B;
struct A
{
inline void f();
B* b;
int val;
};
struct B
{
inline void f();
A* a;
int val;
};
void A::f()
{
cout << b->a->val << endl;
}
void B::f()
{
cout << a->b->val << endl;
}
int main()
{
A a;
B b;
a.val = 10;
b.val = 20;
a.b = &b;
b.a = &a;
a.f();
b.f();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBBOwpzdHJ1Y3QgQjsKCnN0cnVjdCBBCnsKCWlubGluZSB2b2lkIGYoKTsKCglCKiBiOwoJaW50IHZhbDsKfTsKCnN0cnVjdCBCCnsKCWlubGluZSB2b2lkIGYoKTsKCUEqIGE7CglpbnQgdmFsOwp9OwoKdm9pZCBBOjpmKCkKewoJY291dCA8PCBiLT5hLT52YWwgPDwgZW5kbDsKfQoKdm9pZCBCOjpmKCkKewoJY291dCA8PCBhLT5iLT52YWwgPDwgZW5kbDsKfQoKaW50IG1haW4oKQp7CglBIGE7CglCIGI7CglhLnZhbCA9IDEwOwoJYi52YWwgPSAyMDsKCWEuYiA9ICZiOwoJYi5hID0gJmE7CgoJYS5mKCk7CgliLmYoKTsKfQo=