#include <iostream>
using namespace std;
struct X
{
~X() { std::cout << "3\n"; }
void f() {}
} x;
struct Y
{
~Y()
{
static struct Z
{
~Z()
{
x.f();
std::cout << "2\n";
}
} z;
std::cout << "1\n";
}
} y;
int main() {
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IFgKewoJflgoKSB7IHN0ZDo6Y291dCA8PCAiM1xuIjsgIH0KCQoJdm9pZCBmKCkge30KfSB4OwoKCnN0cnVjdCBZCnsKCX5ZKCkgCgl7CgkJc3RhdGljIHN0cnVjdCBaIAoJCXsKCQkJflooKSAKCQkJewoJCQkJeC5mKCk7CgkJCQlzdGQ6OmNvdXQgPDwgIjJcbiI7CgkJCX0gCgkJfSB6OwoJCQoJCXN0ZDo6Y291dCA8PCAiMVxuIjsgIAoJfQp9IHk7CgppbnQgbWFpbigpIHsKCXJldHVybiAwOwp9