using System; using System.Collections.Generic; using System.Text; public class Program { public void Proc(){ Reader.IsDebug = false; string[] inpt = Reader.ReadLine().Split(' '); List numList = new List(); numList.Add(long.Parse(inpt[0])); numList.Add(long.Parse(inpt[1])); long lastIdx = long.Parse(inpt[2]); for(long i=2; i<=lastIdx; i++) { long newNum = numList[numList.Count - 2]^numList[numList.Count - 1]; numList.Add(newNum); if(numList.Count > 50003) { numList.RemoveRange(0, 50000); } } int idx = (int)Math.Min(lastIdx, numList.Count - 1); Console.WriteLine(numList[idx]); } public static void Main(string[] args) { Program prg = new Program(); prg.Proc(); } } class Reader { public static bool IsDebug = true; private static System.IO.StringReader sr; public static string ReadLine() { if(IsDebug) { if(sr == null) { sr = new System.IO.StringReader(initStr.Trim()); } return sr.ReadLine(); } else { return Console.ReadLine(); } } public static int[] GetInt(char delimiter = ' ', bool mustTrim = false) { string src = ReadLine(); if(mustTrim) { src = src.Trim(); } string[] inpt = src.Split(delimiter); int[] ret = new int[inpt.Length]; for(int i=0; i