#include <iostream>
struct thing {
long long value;
thing* next;
char buffer[4096-sizeof(thing*)-sizeof(long long)];
thing(long long v):value(v),next(NULL){}
void touch(long long v) {
thing* cur = this;
while(cur->next) {
cur = cur->next;
cur->value=v;
}
cur->next = new thing(v);
}
};
int main()
{
thing p(0);
for(long long i=0; i<(1ll<<62); ++i) {
try {
p.touch(i);
} catch(...) {}
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IHRoaW5nIHsKICAgIGxvbmcgbG9uZyAgdmFsdWU7CiAgICB0aGluZyogbmV4dDsKICAgIGNoYXIgYnVmZmVyWzQwOTYtc2l6ZW9mKHRoaW5nKiktc2l6ZW9mKGxvbmcgbG9uZyldOwogICAgdGhpbmcobG9uZyBsb25nIHYpOnZhbHVlKHYpLG5leHQoTlVMTCl7fQogICAgdm9pZCB0b3VjaChsb25nIGxvbmcgIHYpIHsKICAgICAgICB0aGluZyogY3VyID0gdGhpczsKICAgICAgICB3aGlsZShjdXItPm5leHQpIHsKICAgICAgICAgICAgY3VyID0gY3VyLT5uZXh0OwogICAgICAgICAgICBjdXItPnZhbHVlPXY7IAogICAgICAgIH0KICAgICAgICBjdXItPm5leHQgPSBuZXcgdGhpbmcodik7CiAgICB9Cn07CgppbnQgbWFpbigpCnsKICAgIHRoaW5nIHAoMCk7CiAgICBmb3IobG9uZyBsb25nIGk9MDsgaTwoMWxsPDw2Mik7ICsraSkgewogICAgICAgdHJ5IHsKICAgICAgICAgICBwLnRvdWNoKGkpOwogICAgICAgfSBjYXRjaCguLi4pIHt9CiAgICB9Cn0=