import std.stdio;
class A {
public:
void print() { writeln( "a" ); }
~this() { b.print(); }
B b;
}
class B {
public:
void print() {/*writeln( "b" );*/ }
~this() { /*a.print();*/ }
A a;
}
int main( char[][] arg )
{
A a = new A();
B b = new B();
a.b = b;
b.a = a;
return 0;
}
aW1wb3J0IHN0ZC5zdGRpbzsKCmNsYXNzIEEgewogIHB1YmxpYzoKICAgIHZvaWQgcHJpbnQoKSB7IHdyaXRlbG4oICJhIiApOyB9CiAgICB+dGhpcygpIHsgYi5wcmludCgpOyB9CiAgICAgQiBiOwp9CgpjbGFzcyBCIHsKICBwdWJsaWM6CiAgICB2b2lkIHByaW50KCkgey8qd3JpdGVsbiggImIiICk7Ki8gfQogICAgfnRoaXMoKSB7IC8qYS5wcmludCgpOyovIH0KICAgIEEgYTsKfQoKCmludCBtYWluKCBjaGFyW11bXSBhcmcgKQp7CiAgQSBhID0gbmV3IEEoKTsKICBCIGIgPSBuZXcgQigpOwogIGEuYiA9IGI7CiAgYi5hID0gYTsKICByZXR1cm4gMDsKfQo=