import sys,math,string,bisect
input=sys.stdin.readline
from collections import deque,defaultdict
L=lambda : list(map(int,input().split()))
Ls=lambda : list(input().split())
M=lambda : map(int,input().split())
I=lambda :int(input())
n,m=M()
if(m==1 and n==1):
    print(2)
elif(n==1):
    print((pow(2,m-1,1000000007)+2))
elif(m==1):
    print((pow(2,n-1,1000000007)+2))
else:
    print((((pow(2,n-1,1000000007)+pow(2,m-1,1000000007))%1000000007)+2))
