def safe_mod(x, m): x %= m if x < 0: x += m return x def inv_gcd(a, b): a = safe_mod(a, b) if a == 0: return b, 0 s, t = b, a m0, m1 = 0, 1 while t > 0: u = s // t s -= t * u m0 -= m1 * u s, t = t, s m0, m1 = m1, m0 if m0 < 0: m0 += b // s return s, m0 r, m = 0, 1 def crt(rr, mm): global r, m r1, m1 = safe_mod(rr, mm), mm if m < m1: r, r1 = r1, r m, m1 = m1, m if m % m1 == 0: if r % m1 != r1: r = m = 0 return g, im = inv_gcd(m, m1) u1 = m1 // g if (r1 - r) % g != 0: r = m = 0 return x = (r1 - r) // g % u1 * im % u1 r += x * m m *= u1 if r < 0: r += m return max = int(input()) for _ in range(int(input())): b, c = map(int, input().split()) crt(c, b) if m == 0 or r > m: print("NaN") exit() print(r)