L=list(input())
mod=10**9+7
N=len(L)
data=[0]*N
data[0]=1
for i in range(1,N):
    data[i]=data[i-1]*3%mod
    
ans=0
num=1
for i in range(N):
    if L[i]=="0":
        continue
    else:
        #直前まで一緒でこの位で０にするとこれ以降自由に選べる
        ans=(ans+num*data[N-1-i])%mod
        num=num*2%mod

ans=(ans+num)%mod
print(ans) L=list(input()) L list(input()) list input() input mod=10**9+7 mod 10**9+7 10**9 10 9 7 N=len(L) N len(L) len L data=[0]*N data [0]*N [0] 0 N data[0]=1 data[0] data 0 1 for i in range(1,N):
    data[i]=data[i-1]*3%mod
     i range(1,N) range 1 N data[i]=data[i-1]*3%mod data[i] data i data[i-1]*3%mod data[i-1]*3 data[i-1] data i-1 i 1 3 mod ans=0 ans 0 num=1 num 1 for i in range(N):
    if L[i]=="0":
        continue
    else:
        #直前まで一緒でこの位で０にするとこれ以降自由に選べる
        ans=(ans+num*data[N-1-i])%mod
        num=num*2%mod i range(N) range N if L[i]=="0":
        continue
    else:
        #直前まで一緒でこの位で０にするとこれ以降自由に選べる
        ans=(ans+num*data[N-1-i])%mod
        num=num*2%mod L[i]=="0" L[i] L i "0" continue ans=(ans+num*data[N-1-i])%mod ans (ans+num*data[N-1-i])%mod ans+num*data[N-1-i] ans num*data[N-1-i] num data[N-1-i] data N-1-i N-1 N 1 i mod num=num*2%mod num num*2%mod num*2 num 2 mod ans=(ans+num)%mod ans (ans+num)%mod ans+num ans num mod print(ans) print ans L=list(input()) list(input()) L mod=10**9+7 10**9+7 mod N=len(L) len(L) N ans=(ans+num)%mod (ans+num)%mod ans ans=(ans+num*data[N-1-i])%mod (ans+num*data[N-1-i])%mod ans num=1 1 num num=num*2%mod num*2%mod num ans=0 0 ans data=[0]*N [0]*N data
L=list(input())
mod=10**9+7
N=len(L)
data=[0]*N
data[0]=1
for i in range(1,N):
    data[i]=data[i-1]*3%mod
    
ans=0
num=1
for i in range(N):
    if L[i]=="0":
        continue
    else:
        #直前まで一緒でこの位で０にするとこれ以降自由に選べる
        ans=(ans+num*data[N-1-i])%mod
        num=num*2%mod

ans=(ans+num)%mod
print(ans)