#include<stdio.h>#include<string.h>#include<math.h>#define LL long long#define MOD 1000000007#define base 100000LL mul(LL a,LL b){ LL ret; LL t1 = b/base; LL t2 = b%base; ret =(a*base) % MOD; ret =(ret*t1) % MOD; ret =(ret + a*t2) % MOD; return ret;}LL power(LL a,LL b){ if(b==1) return a%MOD; LL ans = power(a,b/2); ans = (ans*ans)%MOD; if(b%2) ans = (ans*a)%MOD; return ans;}int main(){ LL N,K,C; while (scanf("%lld%lld",&N,&K)!=EOF) { if (K==1) { printf("1n"); continue; } C = (power(2,K)+1000000006)%MOD; LL ans = power(C,N); printf("%lldn",ans); } return 0;}


