L = input()
dp1 = [0] * 100001 #Lを超えるか不明
dp2 = [0] * 100001 #Lを超えないことが確定
MOD = 10**9 + 7
dp1[0] = 1
for i,d in enumerate(L):
    if int(d) == 1:
        dp1[i+1] = dp1[i]*2 #(1,0) or (0,1)
        dp2[i+1] = dp1[i] + dp2[i]*3 #(0,0)で1から降格 
    if int(d) == 0:
        dp1[i+1] = dp1[i] #(0,0)
        dp2[i+1] = dp2[i]*3 #確定しているから、(0,0)(0,1)(1,0)何でも良い
    dp1[i+1] %= MOD    
    dp2[i+1] %= MOD    
N = len(L)
ans = dp1[N]+dp2[N]
print(ans%MOD) L = input() L input() input dp1 = [0] * 100001 dp1 [0] * 100001 [0] 0 100001 dp2 = [0] * 100001 dp2 [0] * 100001 [0] 0 100001 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 dp1[0] = 1 dp1[0] dp1 0 1 for i,d in enumerate(L):
    if int(d) == 1:
        dp1[i+1] = dp1[i]*2 #(1,0) or (0,1)
        dp2[i+1] = dp1[i] + dp2[i]*3 #(0,0)で1から降格 
    if int(d) == 0:
        dp1[i+1] = dp1[i] #(0,0)
        dp2[i+1] = dp2[i]*3 #確定しているから、(0,0)(0,1)(1,0)何でも良い
    dp1[i+1] %= MOD    
    dp2[i+1] %= MOD     i d enumerate(L) enumerate L if int(d) == 1:
        dp1[i+1] = dp1[i]*2 #(1,0) or (0,1)
        dp2[i+1] = dp1[i] + dp2[i]*3 #(0,0)で1から降格 
     int(d) == 1 int(d) int d 1 dp1[i+1] = dp1[i]*2 dp1[i+1] dp1 i+1 i 1 dp1[i]*2 dp1[i] dp1 i 2 dp2[i+1] = dp1[i] + dp2[i]*3 dp2[i+1] dp2 i+1 i 1 dp1[i] + dp2[i]*3 dp1[i] dp1 i dp2[i]*3 dp2[i] dp2 i 3 if int(d) == 0:
        dp1[i+1] = dp1[i] #(0,0)
        dp2[i+1] = dp2[i]*3 #確定しているから、(0,0)(0,1)(1,0)何でも良い
     int(d) == 0 int(d) int d 0 dp1[i+1] = dp1[i] dp1[i+1] dp1 i+1 i 1 dp1[i] dp1 i dp2[i+1] = dp2[i]*3 dp2[i+1] dp2 i+1 i 1 dp2[i]*3 dp2[i] dp2 i 3 dp1[i+1] %= MOD dp1[i+1] dp1 i+1 i 1 MOD dp2[i+1] %= MOD dp2[i+1] dp2 i+1 i 1 MOD N = len(L) N len(L) len L ans = dp1[N]+dp2[N] ans dp1[N]+dp2[N] dp1[N] dp1 N dp2[N] dp2 N print(ans%MOD) print ans%MOD ans MOD MOD = 10**9 + 7 10**9 + 7 MOD N = len(L) len(L) N dp1 = [0] * 100001 [0] * 100001 dp1 ans = dp1[N]+dp2[N] dp1[N]+dp2[N] ans dp2 = [0] * 100001 [0] * 100001 dp2 L = input() input() L
L = input()
dp1 = [0] * 100001 #Lを超えるか不明
dp2 = [0] * 100001 #Lを超えないことが確定
MOD = 10**9 + 7
dp1[0] = 1
for i,d in enumerate(L):
    if int(d) == 1:
        dp1[i+1] = dp1[i]*2 #(1,0) or (0,1)
        dp2[i+1] = dp1[i] + dp2[i]*3 #(0,0)で1から降格 
    if int(d) == 0:
        dp1[i+1] = dp1[i] #(0,0)
        dp2[i+1] = dp2[i]*3 #確定しているから、(0,0)(0,1)(1,0)何でも良い
    dp1[i+1] %= MOD    
    dp2[i+1] %= MOD    
N = len(L)
ans = dp1[N]+dp2[N]
print(ans%MOD)