import functools import sys import typing from typing import Callable, Dict, List, Set, Tuple sys.setrecursionlimit(10 ** 6) sinput: Callable[..., str] = sys.stdin.readline debug = functools.partial(print, file=sys.stderr) MOD: int = 998244353 INF: float = float("Inf") IINF: int = sys.maxsize // 2 def main() -> None: n, m = map(int, sinput().split()) MOD = 1000000007 p = (pow(2, m, MOD) - 1) % MOD q = pow(2, -1, MOD) print(q * p % MOD) if __name__ == "__main__": main()