#include <bits/stdc++.h>
#define e 1000000007
using namespace std;
int a;
long long b;
int lt(int a, long long b)
{
if(b==0) return 1;
int t=lt(a,b/2);
t=((long long)t*t)%e;
if(b%2) t=((long long)t*a)%e;
return t;
}
int main()
{
while(1)
{
cin>>a>>b;
if(a==0&&b==0) break;
int kq=lt(a,b);
cout<<kq<<"\n";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZSAxMDAwMDAwMDA3CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CglpbnQgYTsKCWxvbmcgbG9uZyBiOwppbnQgbHQoaW50IGEsIGxvbmcgbG9uZyBiKQp7CglpZihiPT0wKSByZXR1cm4gMTsKCWludCB0PWx0KGEsYi8yKTsKCXQ9KChsb25nIGxvbmcpdCp0KSVlOwoJaWYoYiUyKSB0PSgobG9uZyBsb25nKXQqYSklZTsKCXJldHVybiB0Owp9CmludCBtYWluKCkKewoJd2hpbGUoMSkKCXsKCQljaW4+PmE+PmI7CgkJaWYoYT09MCYmYj09MCkgYnJlYWs7CgkJaW50IGtxPWx0KGEsYik7CgkJY291dDw8a3E8PCJcbiI7Cgl9Cn0=