n = int(input()) mod = 1000000007 def matrixmul(a, b): res = [0, 0, 0, 0] for i in range(2): for j in range(2): for k in range(2): res[2 * i + j] += a[2 * i + k] * b[2 * k + j] res[2 * i + j] %= mod return res def powmatrix(matrix, p): ans = [1, 0, 0, 1] while p > 0: if p % 2 == 1: ans = matrixmul(ans, matrix) matrix = matrixmul(matrix, matrix) p >>= 1 return ans matrix = [1, 1, 1, 0] ans = 1 for i in range(n): c, d = map(int, input().split()) res = powmatrix(matrix, c + 1)[0] d %= (mod - 1) if d == 0: d = mod - 1 ans *= pow(res, d, mod) ans %= mod print(ans)