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

dp = [[0]*2 for _ in range(n+1)]
#dp[i][flag]は、i桁目までみたときにflag = 1はストリクトにLより小さい
dp[0][0] = 1

for i in range(n):
    if L[i] == "1":
        dp[i+1][0] = 2*dp[i][0] % mod
        dp[i+1][1] = (3*dp[i][1] % mod + dp[i][0]) % mod
    else:
        dp[i+1][0] = dp[i][0]
        dp[i+1][1] = 3*dp[i][1] % mod
print((dp[n][0]+dp[n][1]) % mod) L = input() L input() input n = len(L) n len(L) len L mod = 10**9 + 7 mod 10**9 + 7 10**9 10 9 7 [0]*2 for _ in range(n+1) for _ in range(n+1) _ range(n+1) range n+1 n 1 for _ in range(n+1) [0]*2 [0] 0 2 dp = [[0]*2 for _ in range(n+1)] dp [[0]*2 for _ in range(n+1)] dp[0][0] = 1 dp[0][0] [0] dp 0 0 1 for i in range(n):
    if L[i] == "1":
        dp[i+1][0] = 2*dp[i][0] % mod
        dp[i+1][1] = (3*dp[i][1] % mod + dp[i][0]) % mod
    else:
        dp[i+1][0] = dp[i][0]
        dp[i+1][1] = 3*dp[i][1] % mod i range(n) range n if L[i] == "1":
        dp[i+1][0] = 2*dp[i][0] % mod
        dp[i+1][1] = (3*dp[i][1] % mod + dp[i][0]) % mod
    else:
        dp[i+1][0] = dp[i][0]
        dp[i+1][1] = 3*dp[i][1] % mod L[i] == "1" L[i] L i "1" dp[i+1][0] = 2*dp[i][0] % mod dp[i+1][0] [i+1] dp i+1 i 1 0 2*dp[i][0] % mod 2*dp[i][0] 2 dp[i][0] [i] dp i 0 mod dp[i+1][1] = (3*dp[i][1] % mod + dp[i][0]) % mod dp[i+1][1] [i+1] dp i+1 i 1 1 (3*dp[i][1] % mod + dp[i][0]) % mod 3*dp[i][1] % mod + dp[i][0] 3*dp[i][1] % mod 3*dp[i][1] 3 dp[i][1] [i] dp i 1 mod dp[i][0] [i] dp i 0 mod dp[i+1][0] = dp[i][0] dp[i+1][0] [i+1] dp i+1 i 1 0 dp[i][0] [i] dp i 0 dp[i+1][1] = 3*dp[i][1] % mod dp[i+1][1] [i+1] dp i+1 i 1 1 3*dp[i][1] % mod 3*dp[i][1] 3 dp[i][1] [i] dp i 1 mod print((dp[n][0]+dp[n][1]) % mod) print (dp[n][0]+dp[n][1]) % mod dp[n][0]+dp[n][1] dp[n][0] [n] dp n 0 dp[n][1] [n] dp n 1 mod mod = 10**9 + 7 10**9 + 7 mod dp = [[0]*2 for _ in range(n+1)] [[0]*2 for _ in range(n+1)] dp n = len(L) len(L) n L = input() input() L
L = input()
n = len(L)
mod = 10**9 + 7

dp = [[0]*2 for _ in range(n+1)]
#dp[i][flag]は、i桁目までみたときにflag = 1はストリクトにLより小さい
dp[0][0] = 1

for i in range(n):
    if L[i] == "1":
        dp[i+1][0] = 2*dp[i][0] % mod
        dp[i+1][1] = (3*dp[i][1] % mod + dp[i][0]) % mod
    else:
        dp[i+1][0] = dp[i][0]
        dp[i+1][1] = 3*dp[i][1] % mod
print((dp[n][0]+dp[n][1]) % mod)