import copy N,K = map(int,input().split()); MOD = pow(10,9)+7 MAX = pow(2,K)-1 ans = [0]*N if N%2 == 1: for i in range(N): ans[i] += MAX//(2*N) if i%2 == 1 and MAX%(2*N) >= i: ans[i] += 1 if i%2 == 0 and MAX%(2*N) >= i + N: ans[i] += 1 else: for i in range(N): if i%2 == 1: ans[i] += MAX//N if MAX%N >= i: ans[i] += 1 #print(ans) for i in range(N): P = ans[i] + ans[(N-i)%N] #print(i,P) ret = P*pow(pow(2,K),MOD-2,MOD) print(ret%MOD)