#include <iostream>
using namespace std;
long long p=1e9+7;
long long re(long long a,long long b,long long c){
long long d=1;
a=a%c;
while(b){
if(b&1)
d=(a%c*(d%c))%c;
a=(a%c*(a%c))%c;
b>>=1;
}
return d%c;
}
int main(){
long long n,m;
cin>>n>>m;
long long a=re(2,m,p);
long long b=(a-1)%p;
long long c=re(b,n,p);
cout<<c;
return 0;
}

京公网安备 11010502036488号