import sys from functools import reduce def input(): return sys.stdin.readline().rstrip('\n') def factorize(n): ans = [] i = 2 while i * i <= n: if n % i == 0: c = 0 while n % i == 0: c += 1 n //= i ans.append((i, c)) i += 1 if n != 1: ans.append((n, 1)) return ans def main(): rems = {} def add_prime(q, p, c): if p in rems: aq, ac = rems[p] if ac > c: aq, q, ac, c = q, aq, c, ac if q % (p ** ac) != aq: return False rems[p] = (q, c) return True def add(x, y): f = factorize(y) for (p, c) in f: if not add_prime(x % (p ** c), p, c): return False return True n = int(input()) for _ in range(n): x, y = map(int, input().split()) if not add(x, y): return -1 crt = [(q, p ** c) for p, (q, c) in rems.items()] M = reduce(lambda x, y: x * y, (b for a, b in crt), 1) ans = sum(q * (M // m) * pow(M // m, -1, m) for (q, m) in crt) % M return M if ans == 0 else ans if __name__ == '__main__': ret = main() if ret is not None: print(ret)