L=input()
lenl=len(L)
mod=10**9+7

a=0
b=1
newa=0
newb=0

for i in range(lenl):
    if L[i]=="0":
        a,b=a*3%mod,b%mod
    else:
        a,b=(3*a+b)%mod,2*b%mod
    #print(a,b)
print((a+b)%mod)
 L=input() L input() input lenl=len(L) lenl len(L) len L mod=10**9+7 mod 10**9+7 10**9 10 9 7 a=0 a 0 b=1 b 1 newa=0 newa 0 newb=0 newb 0 for i in range(lenl):
    if L[i]=="0":
        a,b=a*3%mod,b%mod
    else:
        a,b=(3*a+b)%mod,2*b%mod
    #print(a,b) i range(lenl) range lenl if L[i]=="0":
        a,b=a*3%mod,b%mod
    else:
        a,b=(3*a+b)%mod,2*b%mod
    #print(a,b) L[i]=="0" L[i] L i "0" a,b=a*3%mod,b%mod a a*3%mod a*3 a 3 mod b b%mod b mod a,b=(3*a+b)%mod,2*b%mod a (3*a+b)%mod 3*a+b 3*a 3 a b mod b 2*b%mod 2*b 2 b mod print((a+b)%mod) print (a+b)%mod a+b a b mod lenl=len(L) len(L) lenl a=0 0 a newa=0 0 newa b=a*3%mod,b%mod b%mod b b=(3*a+b)%mod,2*b%mod 2*b%mod b mod=10**9+7 10**9+7 mod newb=0 0 newb a,b=(3*a+b)%mod,2*b%mod (3*a+b)%mod a b=1 1 b a,b=a*3%mod,b%mod a*3%mod a L=input() input() L
L=input()
lenl=len(L)
mod=10**9+7

a=0
b=1
newa=0
newb=0

for i in range(lenl):
    if L[i]=="0":
        a,b=a*3%mod,b%mod
    else:
        a,b=(3*a+b)%mod,2*b%mod
    #print(a,b)
print((a+b)%mod)

