#include <stdio.h>
#define MOD 1000000007
long long f(long long n, long long k)
{
    if( k == 0 ) return 1;
    long long x = f(n, k/2);
    if( k%2 == 0 ) return (x*x)%MOD;
    return (((x*x)%MOD)*n)%MOD;
}
long long g(long long n, long long k)
{
    if( k == 0 ) return 1;
    return (g(n, k-1)*n)%MOD;
}
int main()
{
    freopen(".7.in","r",stdin);
    freopen(".7.out","w",stdout);
    long long n, k;
    scanf("%lld%lld", &n, &k);
    printf("%lld\n", f(n, k));
    return 0;
}
