#include <iostream>
#include <functional>
using namespace std;
int main() {
// your code goes here
std::function<void()> a, b;
a = [&]() {
static bool call = true;
cout << "a called" << endl;
if(call) {
call = false;
b();
}
};
b = [&]() {
static bool call = true;
cout << "b called" << endl;
if(call) {
call = false;
a();
}
};
a();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCXN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBhLCBiOwoJYSA9IFsmXSgpIHsKCQlzdGF0aWMgYm9vbCBjYWxsID0gdHJ1ZTsKCQljb3V0IDw8ICJhIGNhbGxlZCIgPDwgZW5kbDsKCQlpZihjYWxsKSB7CgkJCWNhbGwgPSBmYWxzZTsKCQkJYigpOwoJCX0KCX07CgkKCWIgPSBbJl0oKSB7CgkJc3RhdGljIGJvb2wgY2FsbCA9IHRydWU7CgkJY291dCA8PCAiYiBjYWxsZWQiIDw8IGVuZGw7CgkJaWYoY2FsbCkgewoJCQljYWxsID0gZmFsc2U7CgkJCWEoKTsKCQl9Cgl9OwoJCglhKCk7CgoJcmV0dXJuIDA7Cn0=