MOD=10**9+7
L=input()
N=len(L)
ans,lbit=0,0
for i in range(N):
    if L[i]=='0':
        continue
    ans=(ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD
    lbit+=1
print((ans+pow(2,lbit,MOD))%MOD) MOD=10**9+7 MOD 10**9+7 10**9 10 9 7 L=input() L input() input N=len(L) N len(L) len L ans,lbit=0,0 ans 0 lbit 0 for i in range(N):
    if L[i]=='0':
        continue
    ans=(ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD
    lbit+=1 i range(N) range N if L[i]=='0':
        continue
     L[i]=='0' L[i] L i '0' continue ans=(ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD ans (ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD) ans pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD pow(3,N-i-1,MOD)*pow(2,lbit,MOD) pow(3,N-i-1,MOD) pow 3 N-i-1 N-i N i 1 MOD pow(2,lbit,MOD) pow 2 lbit MOD MOD MOD lbit+=1 lbit 1 print((ans+pow(2,lbit,MOD))%MOD) print (ans+pow(2,lbit,MOD))%MOD ans+pow(2,lbit,MOD) ans pow(2,lbit,MOD) pow 2 lbit MOD MOD L=input() input() L N=len(L) len(L) N lbit+=1 1 lbit ans=(ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD (ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD ans MOD=10**9+7 10**9+7 MOD ans,lbit=0,0 0 ans lbit=0,0 0 lbit
MOD=10**9+7
L=input()
N=len(L)
ans,lbit=0,0
for i in range(N):
    if L[i]=='0':
        continue
    ans=(ans+(pow(3,N-i-1,MOD)*pow(2,lbit,MOD)%MOD))%MOD
    lbit+=1
print((ans+pow(2,lbit,MOD))%MOD)