#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ull = unsigned long long; const ll INF = 1e16; const ll MOD = 1e9 + 7; #define REP(i, n) for(ll i = 0; i < n; i++) int main() { ll f0, f1, n; cin >> f0 >> f1 >> n; if(n == 0){ cout << f0 << endl; return 0; } if(n == 1){ cout << f1 << endl; return 0; } if(n == 2){ cout << (f0 xor f1) << endl; return 0; } ll ans = 0; REP(i, 64){ ll b1 = (f0 >> i) & 1, b2 = (f1 >> i) & 1; // cout << b1 << ' ' << b2 << endl; if(!b1 && b2){ if(n % 3 != 0){ ans |= (1LL << i); } } else if(b1 && !b2){ if(n % 3 != 1){ ans |= (1LL << i); } } else if(b1 && b2){ if(n % 3 != 2){ ans |= (1LL << i); } } // cout << ans << endl; } cout << ans << endl; }