F0, F1, n = gets.split.map(&:to_i) MEMO = {} def fib_xor(n) case n when 1 F1 when 0 F0 else unless MEMO[n] MEMO[n] ||= fib_xor(n-1) ^ fib_xor(n-2) end MEMO[n] end end puts fib_xor(n)