The Fibonacci sequence is defined as F(n) = F(n-1) + F(n-2). You have developed two sequences of numbers. The first sequence that uses the bitwise XOR operation instead of the addition method is called the Xoronacci number. It is described as follows:
X(n) = X(n-1) XOR X(n-2)
The second sequence that uses the bitwise XNOR operation instead of the addition method is called the XNoronacci number. It is described as follows:
E(n) = E(n-1) XNOR E(n-2)
The first and second numbers of the sequence are as follows:
X(1) = E(1) = a
X(2) = E(2) = b
Your task is to determine the value of max(X(n),E(n)), where n is the n th term of the Xoronacci and XNoronacci sequence.

-----Input:-----
The first line consists of a single integer T denoting the number of test cases.
The first and the only line of each test case consists of three space separated integers a, b and n.

-----Output:-----
For each test case print a single integer max(X(n),E(n)).

-----Constraints-----
- $1 \leq T \leq 1000$
- $2 \leq a,b,n \leq 1000000000000$

-----Sample Input:-----
1
3 4 2 

-----Sample Output:-----
4

-----EXPLANATION:-----
Xoronacci Sequence : 3 4 7 …….
XNoronacci Sequence : 3 4 0 …….
Here n = 2. Hence max(X(2),E(2)) = 4

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 't = int(input())\n\ndef xnor(a, b): \n  \n # Make sure a is larger \n if (a < b): \n  a, b = b, a\n \n if (a == 0 and b == 0) : \n  return 1; \n  \n # for last bit of a \n a_rem = 0 \n  \n # for last bit of b \n b_rem = 0 \n \n # counter for count bit and  \n #  set bit in xnor num \n count = 0\n  \n # for make new xnor number \n xnornum = 0 \n \n # for set bits in new xnor \n # number \n while (a!=0) : \n  \n  # get last bit of a \n  a_rem = a & 1 \n   \n  # get last bit of b \n  b_rem = b & 1 \n \n  # Check if current two  \n  # bits are same \n  if (a_rem == b_rem):      \n   xnornum |= (1 << count) \n   \n  # counter for count bit \n  count=count+1\n   \n  a = a >> 1\n  b = b >> 1\n  \n return xnornum;\n\nwhile t:\n t -= 1\n\n a, b, n = input().split()\n a, b, n = int(a), int(b), int(n)\n\n if n%3 == 1:\n  print(a)\n  continue\n\n if n%3 == 2:\n  print(b)\n  continue\n\n xor_ = a ^ b\n xnor_ = xnor(a, b)\n\n print(max(xor_, xnor_))'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13081