#include <bits/stdc++.h>
using namespace std;
const long long N = 1e5 + 5, mod = 1e9 + 7;
long long n, m;
long long qmod(long long a, long long b) {
  long long ans = 1;
  a = a % mod;
  while (b) {
    if (b & 1 == 1) ans = ans * a % mod;
    a = a * a % mod;
    ans %= mod;
    b >>= 1;
  }
  return ans % mod;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> m;
  long long tmp = qmod(2, m) % mod;
  tmp = (tmp + mod - 1) % mod;
  cout << qmod(tmp, n) % mod << endl;
  return 0;
}
