#include<bits/stdc++.h>
using namespace std;
const int MOD = 1e9+7;
typedef long long ll;
ll to_res(ll n,ll num){
    ll res = 1;
    while(n>0){
        if(n%2==0){
            num=num*num%MOD;
            n/=2;
        }else{
            res=res*num%MOD;
            n--;
        }
    }
    return res;
}
int main(){
    ll n,m;
    cin>>n>>m;
    ll num = to_res(m,2)-1;
    if(num<0)num+=MOD;
    ll res = to_res(n,num);
    cout<<res<<endl;
    return 0;
}