#include <cstdint>
#include <iostream>
using namespace std;
using U64 = uint64_t;
const int X = 3;
const int Y = 152;
const int XY = X*Y;
const U64 evenmask = 0x5555555555555555UL;
const U64 oddmask = ~evenmask;
U64 trees[XY];
U64 hats[XY];
int wolfx, wolfy;
void init() {
for(int i = 0; i < XY; ++i) {
trees[i] = i;
hats[i] = i;
}
}
void wolf() {
hats[wolfy*X + wolfx/64] &= ~(1 << (wolfx % 64));
}
void step(int t) {
for (int i = X; i < XY-X; ++i) {
U64 h = hats[i];
h &= ((t + i/3) % 2) ? oddmask : evenmask;
h |= h << 1 | h >> 1 | (hats[i+1]>>63) | (hats[i-1]<<63) | hats[i-X] | hats[i+X];
hats[i] = h;
}
}
int main() {
init();
wolfx = 1; wolfy = 2;
for (int t = 0; t < 32000; ++t) {
wolf();
wolfx = (wolfx + 1) % 3;
wolfy = (wolfy + 1) % 100;
wolf();
step(t);
}
cout << hats[X];
}
I2luY2x1ZGUgPGNzdGRpbnQ+CiNpbmNsdWRlIDxpb3N0cmVhbT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnVzaW5nIFU2NCA9IHVpbnQ2NF90OwoKY29uc3QgaW50IFggPSAzOwpjb25zdCBpbnQgWSA9IDE1MjsKY29uc3QgaW50IFhZID0gWCpZOwoKY29uc3QgVTY0IGV2ZW5tYXNrID0gMHg1NTU1NTU1NTU1NTU1NTU1VUw7CmNvbnN0IFU2NCBvZGRtYXNrID0gfmV2ZW5tYXNrOwoKVTY0IHRyZWVzW1hZXTsKVTY0IGhhdHNbWFldOwppbnQgd29sZngsIHdvbGZ5OwoKdm9pZCBpbml0KCkgewogIGZvcihpbnQgaSA9IDA7IGkgPCBYWTsgKytpKSB7CiAgCXRyZWVzW2ldID0gaTsKICAgIGhhdHNbaV0gPSBpOwogIH0KfQoKdm9pZCB3b2xmKCkgewogIGhhdHNbd29sZnkqWCArIHdvbGZ4LzY0XSAmPSB+KDEgPDwgKHdvbGZ4ICUgNjQpKTsKfQoKdm9pZCBzdGVwKGludCB0KSB7CiAgZm9yIChpbnQgaSA9IFg7IGkgPCBYWS1YOyArK2kpIHsKICAgIFU2NCBoID0gaGF0c1tpXTsKICAgIGggJj0gKCh0ICsgaS8zKSAlIDIpID8gb2RkbWFzayA6IGV2ZW5tYXNrOwogICAgaCB8PSBoIDw8IDEgfCBoID4+IDEgfCAoaGF0c1tpKzFdPj42MykgfCAoaGF0c1tpLTFdPDw2MykgfCBoYXRzW2ktWF0gfCBoYXRzW2krWF07CiAgICBoYXRzW2ldID0gaDsKICB9Cn0KCmludCBtYWluKCkgewogIGluaXQoKTsKICB3b2xmeCA9IDE7IHdvbGZ5ID0gMjsKICBmb3IgKGludCB0ID0gMDsgdCA8IDMyMDAwOyArK3QpIHsKICAgIHdvbGYoKTsKICAgIHdvbGZ4ID0gKHdvbGZ4ICsgMSkgJSAzOwogICAgd29sZnkgPSAod29sZnkgKyAxKSAlIDEwMDsKICAgIHdvbGYoKTsKICAgIHN0ZXAodCk7CiAgfQogIGNvdXQgPDwgaGF0c1tYXTsKfQo=