def Ext_gcd(a,b): #GCD,p,qを返す。 if b == 0: return (a,1,0) g,y,x = Ext_gcd(b,a%b) y -= a//b*x return (g,x,y) p = pow(10,9)+7 T = int(input()) for _ in range(T): X,K = map(int,input().split()) g,x,y = Ext_gcd(1-p,K) y %= p-1 ans = pow(X,y,p) print(ans)