def prod(mat0,mat1): mat=[[0]*2 for i in range(2)] for i in range(2): for j in range(2): for k in range(2): mat[i][k]+=mat0[i][j]*mat1[j][k]%mod mat[i][k]%=mod return mat N=int(input()) ans=1 mod=10**9+7 M=[[[1,1],[1,0]]] for i in range(1,60): M.append(prod(M[-1],M[-1])) for n in range(N): c,d=map(int,input().split()) if d>mod: d%=mod-1 mat=[[1,0],[0,1]] for b in range(60): if c+1>>b&1: mat=prod(mat,M[b]) ans*=pow(mat[0][0],d,mod) ans%=mod print(ans)