output_description: Print all pairs (k, x) such that a' and b will be equal, using one line for
  each pair, in ascending order of k (ascending order of x for pairs with the
  same k).
  
  If there are no such pairs, the output should be empty.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      a_0 a_1 ... a_{N-1}
      b_0 b_1 ... b_{N-1}
attempt: # coding: utf-8
  
  
  def main():
  
      N = 0
      a = []
      b = []
      with open("C:/Users/admin/Downloads/random_05") as f:
          N = int(f.readline())
          a = [int(x) for x in f.readline().split()]
          b = [int(x) for x in f.readline().split()]
  
      # N = int(input())
      # a = [int(x) for x in input().split()]
      # b = [int(x) for x in input().split()]
  
      xor_a = [a[i] ^ a[(i + 1) % N] for i in range(len(a))]
      xor_b = [b[i] ^ b[(i + 1) % N] for i in range(len(b))]
  
      kmp = KmpSearch(xor_a + xor_a, xor_b)
  
      # start = 0
      # ans = []
      # x = []
      # while True:
      # 	k = kmp.search(start)
      # 	if k == -1 or k == len(a):
      # 		break
      # 	# ans.append(k)
      # 	start = k + 1
      # 	# x.append(a[0 + k] ^ b[0])
  
      # 	print(str(k) + " " + str(a[0 + k] ^ b[0]))
  
      ans = kmp.full_search()
      for k in ans:
          print(str(k) + " " + str(a[0 + k] ^ b[0]))
      # for i in range(len(ans)):
      # 	print(str(ans[i]) + " " + str(x[i]))
  
  
  class KmpSearch:
      def __init__(self, target, pattern):
          self.target = target
          self.pattern = pattern
          self.__table = self.__create_kmp_table()
  
      def search(self, start=0):
          if len(self.pattern) > len(self.target):
              return -1
  
          i = start
          p = 0
          while i < len(self.target):
              if self.pattern[p] == self.target[i]:
                  i += 1
                  p += 1
  
                  if p == len(self.pattern):
                      return i - p
              elif p == 0:
                  i += 1
              else:
                  p = self.__table[p]
  
          return -1
  
      def full_search(self):
          if len(self.pattern) > len(self.target):
              return -1
  
          res = []
          i = 0
          p = 0
          while i < len(self.target):
              if self.pattern[p] == self.target[i]:
                  i += 1
                  p += 1
  
                  if p == len(self.pattern):
                      res.append(i - p)
                      i -= 1
                      p = self.__table[p - 1]
              elif p == 0:
                  i += 1
              else:
                  p = self.__table[p]
  
          return res
  
      def __create_kmp_table(self):
          table = [0 for x in range(len(self.pattern))]
  
          j = 0
          for i in range(1, len(self.pattern)):
              table[i] = j
              if self.pattern[j] == self.pattern[i]:
                  j += 1
              else:
                  j = 0
  
          return table
  
  
  if __name__ == "__main__":
      main()
  
problem_description: Statement
  
  Given are two sequences a=\\{a_0,\ldots,a_{N-1}\\} and
  b=\\{b_0,\ldots,b_{N-1}\\} of N non-negative integers each.
  
  Snuke will choose an integer k such that 0 \leq k < N and an integer x not
  less than 0, to make a new sequence of length N,
  a'=\\{a_0',\ldots,a_{N-1}'\\}, as follows:
  
    * a_i'= a_{i+k \mod N}\ XOR \ x
  
  Find all pairs (k,x) such that a' will be equal to b.
  
  What is \mbox{ XOR }?
  
  The XOR of integers A and B, A \mbox{ XOR } B, is defined as follows:
  
    * When A \mbox{ XOR } B is written in base two, the digit in the 2^k's place (k \geq 0) is 1 if either A or B, but not both, has 1 in the 2^k's place, and 0 otherwise.
  
  For example, 3 \mbox{ XOR } 5 = 6. (In base two: 011 \mbox{ XOR } 101 = 110.)
samples: [{"input": "3\n    0 2 1\n    1 2 3", "output": "1 3\n    \n\nIf (k,x)=(1,3),\n\n  * a_0'=(a_1\\ XOR \\ 3)=1\n\n  * a_1'=(a_2\\ XOR \\ 3)=2\n\n  * a_2'=(a_0\\ XOR \\ 3)=3\n\nand we have a' = b.\n\n* * *"}, {"input": "5\n    0 0 0 0 0\n    2 2 2 2 2", "output": "0 2\n    1 2\n    2 2\n    3 2\n    4 2\n    \n\n* * *"}, {"input": "6\n    0 1 3 7 6 4\n    1 5 4 6 2 3", "output": "2 2\n    5 5\n    \n\n* * *"}, {"input": "2\n    1 2\n    0 0", "output": "No pairs may satisfy the condition."}]