import math import random # import numpy as np def gcd(x: int, y: int) -> int: if x < y: x, y = y, x while y > 0: x %= y x, y = y, x return x # code here n = int(input()) a = [*map(lambda x: int(x) if x != "-1" else 0, input().split())] mask = 1 while mask < n: for i in range(n): if not i & mask and (i | mask) < n: a[i] += a[i | mask] mask <<= 1 for i in range(n): a[i] **= 2 mask = 1 while mask < n: for i in range(n): if not i & mask and (i | mask) < n: a[i] -= a[i | mask] mask <<= 1 ans = -1 for x in a: if x == 0: continue if ans == -1: ans = x else: ans = gcd(ans, abs(x)) print(ans)