typedef long long ll; typedef long double ld; #include using namespace std; #define int long long const ll MOD = 1e9+7; long long modpow(long long a, long long n, long long mod) { long long res = 1; while (n > 0) { if (n & 1) res = res * a % mod; a = a * a % mod; n >>= 1; } return res; } signed main(){ ll n,m; std::cin >> n>>m; std::cout << (modpow(2,m,MOD)-1+MOD)%MOD*modpow(2,MOD-2,MOD)%MOD << std::endl; }