M = off = 1012345 cum = [0] * 2 * M def get_sum(l, r): l += off r += off return cum[min(2 * M - 1, r)] - cum[max(l, 0)] N = int(input()) for i in range(N): a, b = map(int, input().split()) cum[a + off + 1] += 1 cum[b + off + 1] -= 1 cum[a - b + off + 1] -= 1 for i in range(1, M * 2): cum[i] += cum[i - 1] ans = [-1] * M for m in range(1, M): val = 0 r = 0 while r < M: val += get_sum(r, r + m) * (r // m) r += m l = -m while l > -M: val += get_sum(l, l + m) * (l // m) l -= m ans[m] = val print(ans.index(max(ans)))