#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <string>
#include <set>
#include <map>
#include <vector>
#include <ctime>
#include <math.h>
#include <memory.h>
using namespace std;
#define FOR(i, n) for (int i = 0; i < (int)n; ++i)
typedef long long LL;
typedef vector<int> vi;
int F(int n)
{
// n - number of matchsticks
if (n <= 1)
return n;
set<int> values;
for (int matchsticks = 1; matchsticks <= 2; ++matchsticks)
{
for (int i = 0; (i + matchsticks) <= n; ++i)
{
int grundyForTwoSubgamesCombined = F(i) ^ F(n - (i + matchsticks));
values.insert(grundyForTwoSubgamesCombined);
}
}
int res = 0;
while (values.count(res) > 0)
++res;
return res;
}
int main()
{
// IIXIIIXXIIII
cout << (F(2) ^ F(3) ^ F(4)) << endl;
// III
cout << F(3) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPHNzdHJlYW0+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxjdGltZT4KI2luY2x1ZGUgPG1hdGguaD4KI2luY2x1ZGUgPG1lbW9yeS5oPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBGT1IoaSwgbikgZm9yIChpbnQgaSA9IDA7IGkgPCAoaW50KW47ICsraSkKIAp0eXBlZGVmIGxvbmcgbG9uZyBMTDsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKCgppbnQgRihpbnQgbikKewoJLy8gbiAtIG51bWJlciBvZiBtYXRjaHN0aWNrcwoJaWYgKG4gPD0gMSkKCQlyZXR1cm4gbjsKCXNldDxpbnQ+IHZhbHVlczsKCWZvciAoaW50IG1hdGNoc3RpY2tzID0gMTsgbWF0Y2hzdGlja3MgPD0gMjsgKyttYXRjaHN0aWNrcykKCXsKCQlmb3IgKGludCBpID0gMDsgKGkgKyBtYXRjaHN0aWNrcykgPD0gbjsgKytpKQoJCXsKCQkJaW50IGdydW5keUZvclR3b1N1YmdhbWVzQ29tYmluZWQgPSBGKGkpIF4gRihuIC0gKGkgKyBtYXRjaHN0aWNrcykpOwoJCQl2YWx1ZXMuaW5zZXJ0KGdydW5keUZvclR3b1N1YmdhbWVzQ29tYmluZWQpOwoJCX0KCX0KCWludCByZXMgPSAwOwoJd2hpbGUgKHZhbHVlcy5jb3VudChyZXMpID4gMCkKCQkrK3JlczsKCXJldHVybiByZXM7Cn0KCmludCBtYWluKCkKewoJLy8gSUlYSUlJWFhJSUlJCgljb3V0IDw8IChGKDIpIF4gRigzKSBeIEYoNCkpIDw8IGVuZGw7CgkvLyBJSUkKCWNvdXQgPDwgRigzKSA8PCBlbmRsOwoKCXJldHVybiAwOwp9