def extgcd(a, b): if b == 0: return (1, 0) else: x, y = extgcd(b, a % b) return (y, x - (a // b) * y) def solve_odd(a, n, p): e = extgcd(n, p - 1)[0] % (p - 1) return pow(a, e, p) T = int(input()) for _ in range(T): x, k = map(int, input().split()) print(solve_odd(x, k, 10 ** 9 + 7))