import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import log,gcd input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) mod = 10**9 + 7 L = int(input()) res = 1 for _ in range(L): p,e = mi() ip = pow(p-1,mod-2,mod) res *= ip * (((p*(pow(p,e+1,mod)-1)%mod)*ip % mod)-(e+1)) % mod #print(ip * (((p*(pow(p,e+1,mod)-1)%mod)*ip % mod)-(e+1))) res %= mod print(res)