#!/usr/bin/env python3 mod = int(1e9+7) def fib(n, memo = { 0: 1, 1: 1 }): if n not in memo: a, b = n//2, n-n//2 memo[n] = (fib(a) * fib(b) + fib(a-1) * fib(b-1)) % mod return memo[n] n = int(input()) ans = 1 for i in range(n): c, d = map(int,input().split()) ans = ans * pow(fib(c+1), d, mod) % mod print(ans)