""" M以下のそれぞれのbitに関して 0,1は当確率で選ばれる。 1の個数が奇数個の確立、偶数個の確率 Nが奇数の場合 , 1/2 Nが偶数の場合 , 1/2 """ import sys from sys import stdin N,M = map(int,input().split()) mod = 10**9+7 half = pow(2,mod-2,mod) print ( (pow(2,M,mod)-1) * half % mod )