B. Alice and the List of Presents
input
1 3
output
7
code
//Siberian Squirrel
#include<bits/stdc++.h>
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
//#define ACM_LOCAL
using namespace std;
typedef long long ll;
const int N = 2e5 + 10;
const int MOD = 1e9 + 7;
ll quick_pow(ll ans, ll p, ll res = 1) {
for(; p; p >>= 1, ans = ans * ans % MOD)
if(p & 1) res = res * ans % MOD;
return res % MOD;
}
inline void solve(int n, int m, ll res = 0, ll ans = 0) {
ans= (quick_pow(2, m) - 1 + MOD) % MOD;
res = quick_pow(ans, n);
cout << res << endl;
}
int main() {
IO;
#ifdef ACM_LOCAL
freopen("input", "r", stdin);
freopen("output", "w", stdout);
#endif
int o = 1, n, m, k;
// cin >> o;
while(o --) {
cin >> n >> m;
solve(n, m);
}
return 0;
}