n,q,s = map(int,input().split()) res = [0]*(n+q) t = 0 M = 2**29 for i in range(10000+n+q): #seed = seed ^ (seed << 13); t ^= t%524288<<13 t ^= s>>19 s ^= s%524288<<13 #seed = seed ^ (seed >> 7); s ^= (s>>7)^(t%128<<25) t ^= t>>7 #seed = seed ^ (seed << 17); t ^= t%32768<<17 t ^= s>>15 s ^= (s%32768)<<17 #return (seed >> 33); if i >= 10000+n: res[i-10000] = t//2*M + i-n-9999 elif i >= 10000: res[i-10000] = (t//2+1)*M res.sort() ans = v = 0 for r in res: if r%M==0: v += 1 else: ans ^= v*(r%M-1) print(ans)