L=list(input())
L=list(map(int,L))
dp=[2,1]
MOD=10**9+7
for j in range(1,len(L)):
    a,b=dp
    if L[j]==1:
        dp[0]=(a*2)%MOD
        dp[1]=(a+b*3)%MOD
    elif L[j]==0:
        dp[1]=(b*3)%MOD
print(sum(dp)%MOD) L=list(input()) L list(input()) list input() input L=list(map(int,L)) L list(map(int,L)) list map(int,L) map int L dp=[2,1] dp [2,1] 2 1 MOD=10**9+7 MOD 10**9+7 10**9 10 9 7 for j in range(1,len(L)):
    a,b=dp
    if L[j]==1:
        dp[0]=(a*2)%MOD
        dp[1]=(a+b*3)%MOD
    elif L[j]==0:
        dp[1]=(b*3)%MOD j range(1,len(L)) range 1 len(L) len L a,b=dp a dp b if L[j]==1:
        dp[0]=(a*2)%MOD
        dp[1]=(a+b*3)%MOD
    elif L[j]==0:
        dp[1]=(b*3)%MOD L[j]==1 L[j] L j 1 dp[0]=(a*2)%MOD dp[0] dp 0 (a*2)%MOD a*2 a 2 MOD dp[1]=(a+b*3)%MOD dp[1] dp 1 (a+b*3)%MOD a+b*3 a b*3 b 3 MOD elif L[j]==0:
        dp[1]=(b*3)%MOD L[j]==0 L[j] L j 0 dp[1]=(b*3)%MOD dp[1] dp 1 (b*3)%MOD b*3 b 3 MOD print(sum(dp)%MOD) print sum(dp)%MOD sum(dp) sum dp MOD MOD=10**9+7 10**9+7 MOD b=dp dp b L=list(input()) list(input()) L dp=[2,1] [2,1] dp L=list(map(int,L)) list(map(int,L)) L a,b=dp dp a
L=list(input())
L=list(map(int,L))
dp=[2,1]
MOD=10**9+7
for j in range(1,len(L)):
    a,b=dp
    if L[j]==1:
        dp[0]=(a*2)%MOD
        dp[1]=(a+b*3)%MOD
    elif L[j]==0:
        dp[1]=(b*3)%MOD
print(sum(dp)%MOD)