#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
long long r, c;
long long lt(long long A, long long B) {
if (B == 0) return 1;
if (B % 2) return (A * lt((A * A) % MOD, B / 2)) % MOD;
else return lt((A * A) % MOD, B / 2);
}
main() {
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
cin >> r >> c;
long long ans = 18;
long long cnt = r + c - 2;
ans *= lt(6, cnt);
ans %= MOD;
ans *= lt(2, r * c - cnt - 1);
ans %= MOD;
cout << ans << '\n';
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGxvbmcgbG9uZyBNT0QgPSAxZTkgKyA3Owpsb25nIGxvbmcgciwgYzsKCmxvbmcgbG9uZyBsdChsb25nIGxvbmcgQSwgbG9uZyBsb25nIEIpIHsKICAgIGlmIChCID09IDApIHJldHVybiAxOwogICAgaWYgKEIgJSAyKSByZXR1cm4gKEEgKiBsdCgoQSAqIEEpICUgTU9ELCBCIC8gMikpICUgTU9EOwogICAgZWxzZSByZXR1cm4gbHQoKEEgKiBBKSAlIE1PRCwgQiAvIDIpOwp9CgptYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGNpbiA+PiByID4+IGM7CgogICAgbG9uZyBsb25nIGFucyA9IDE4OwogICAgbG9uZyBsb25nIGNudCA9IHIgKyBjIC0gMjsKICAgIGFucyAqPSBsdCg2LCBjbnQpOwogICAgYW5zICU9IE1PRDsKICAgIGFucyAqPSBsdCgyLCByICogYyAtIGNudCAtIDEpOwogICAgYW5zICU9IE1PRDsKCiAgICBjb3V0IDw8IGFucyA8PCAnXG4nOwoKICAgIHJldHVybiAwOwp9Cg==