#include <iostream>
using namespace std;
#define mod 1000000007
long long int modfun(long long int a,long long int b)
{
long long int result = 1;
while (b > 0)
{
if (b & 1)
{
a=a%mod;
result = (result * a)%mod;
result=result%mod;
}
b=b>>1;
a=a%mod;
a = (a*a)%mod;
a=a%mod;
}
return result;
}
int main()
{
int t;
cin>>t;
while(t--)
{
long long int a,b;
cin>>a>>b;
if(a==0)
cout<<0<<"\n";
else if(b==0)
cout<<1<<"\n";
else if(b==1)
cout<<a%mod<<"\n";
else
{
cout<<(modfun(a,b))%mod<<"\n";
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBtb2QgMTAwMDAwMDAwNwpsb25nIGxvbmcgaW50IG1vZGZ1bihsb25nIGxvbmcgaW50IGEsbG9uZyBsb25nIGludCBiKQp7CiAgICAgbG9uZyBsb25nIGludCByZXN1bHQgPSAxOwogICAgd2hpbGUgKGIgPiAwKQogICAgICAgewogICAgICAgICAgIGlmIChiICYgMSkKICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGE9YSVtb2Q7CiAgICAgICAgICAgICAgIHJlc3VsdCA9IChyZXN1bHQgKiBhKSVtb2Q7CiAgICAgICAgICAgICAgIHJlc3VsdD1yZXN1bHQlbW9kOwogICAgICAgICAgIH0KICAgICAgICBiPWI+PjE7CiAgICAgICAgYT1hJW1vZDsKICAgICAgICBhID0gKGEqYSklbW9kOwogICAgICAgIGE9YSVtb2Q7CiAgICAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CmludCBtYWluKCkKewogICAgaW50IHQ7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICAgICAgewogICAgICAgICAgIGxvbmcgbG9uZyBpbnQgYSxiOwogICAgICAgICAgIGNpbj4+YT4+YjsKICAgICAgICAgICBpZihhPT0wKQogICAgICAgICAgICBjb3V0PDwwPDwiXG4iOwogICAgICAgICAgIGVsc2UgaWYoYj09MCkKICAgICAgICAgICAgY291dDw8MTw8IlxuIjsKICAgICAgICAgICBlbHNlIGlmKGI9PTEpCiAgICAgICAgICAgIGNvdXQ8PGElbW9kPDwiXG4iOwogICAgICAgICAgIGVsc2UKICAgICAgICAgICB7CiAgICAgICAgICAgICAgIGNvdXQ8PChtb2RmdW4oYSxiKSklbW9kPDwiXG4iOwogICAgICAgICAgIH0KCiAgICAgICAgfQogICAgcmV0dXJuIDA7Cn0K