B,W=map(int,input().split())
N=B+W+2
mod=10**9+7
table=[1]*(N+3)
t=1
for i in range(1,N+3):
t*=i
t%=mod
table[i]=t
rtable=[1]*(N+3)
t=1
for i in range(1,N+3):
t*=pow(i,mod-2,mod)
t%=mod
rtable[i]=t
p=[0]*(B+W+1)
q=[0]*(B+W+1)
t=pow(2,mod-2,mod)
for i in range(W,B+W+1):
if i==W:
p[i]=pow(t,i,mod)
else:
p[i]=(p[i-1]+table[i-1]*rtable[W-1]*rtable[i-W]*pow(t,i,mod))%mod
#(table[i]*rtable[W]*table[i-W]*pow(t,i,mod))%mod
for i in range(B,B+W+1):
if i==B:
q[i]=pow(t,i,mod)
else:
q[i]=(q[i-1]+table[i-1]*rtable[B-1]*rtable[i-B]*pow(t,i,mod))%mod
#print(p,q)
for i in range(B+W):
ans=((1+p[i]-q[i])*pow(2,mod-2,mod))%mod
print(ans)