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())\nfor x in range(t):\n a,b,n = list(map(int,input().split()))\n import math \n \n# Please refer below post for details of this function \n# https://www.geeksforgeeks.org/toggle-bits-significant-bit/ \n def togglebit( n): \n  \n  if (n == 0): \n   return 1\n  \n  # Make a copy of n as we are \n  # going to change it. \n  i = n \n  \n  # Below steps set bits after \n  # MSB (including MSB) \n  \n  # Suppose n is 273 (binary \n  # is 100010001). It does following \n  # 100010001 | 010001000 = 110011001 \n  n = n|(n >> 1) \n  \n  # This makes sure 4 bits \n  # (From MSB and including MSB) \n  # are set. It does following \n  # 110011001 | 001100110 = 111111111 \n  n |= n >> 2\n  n |= n >> 4\n  n |= n >> 8\n  n |= n >> 16\n  \n  return i ^ n \n   \n # Returns XNOR of num1 and num2 \n def xnor( num1, num2): \n   \n  # Make sure num1 is larger \n  if (num1 < num2): \n   temp = num1 \n   num1 = num2 \n   num2 = temp \n  num1 = togglebit(num1) \n   \n  return num1 ^ num2 \n\n def xor(x,y,p):\n  if p%3 == 1:\n   return x\n  elif p%3 == 2:\n   return y\n  elif p%3 == 0:\n   return (x^y)\n def xnnor(x,y,p):\n  if p%3 == 1:\n   return x\n  elif p%3 == 2:\n   return y\n  elif p%3 == 0:\n   return xnor(x,y) \n #print(xor(a,b,n),xnor(a,b,n))\n print(max(xor(a,b,n),xnnor(a,b,n))) \n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 13049