MOD = 10**9 + 7

L = input()

dp1 = [0]*100010 # dp1[k]: 先頭からk桁について，A+B < L が確定している (A,B) の数
dp2 = [0]*100010 # dp2[k]: 先頭からk桁について，A+B と L が一致している (A,B) の数
dp1[1], dp2[1] = 1, 2

for i in range(1,len(L)):
    for digit_A, digit_B in [[0,0],[0,1],[1,0]]:
            dp1[i+1] += dp1[i]

            if digit_A + digit_B == int(L[i]):
                dp2[i+1] += dp2[i]
            elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
            dp1[i+1] %= MOD
            dp2[i+1] %= MOD

ans = dp1[len(L)] + dp2[len(L)]
print(ans % MOD) MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 L = input() L input() input dp1 = [0]*100010 dp1 [0]*100010 [0] 0 100010 dp2 = [0]*100010 dp2 [0]*100010 [0] 0 100010 dp1[1], dp2[1] = 1, 2 dp1[1] dp1 1 1 dp2[1] dp2 1 2 for i in range(1,len(L)):
    for digit_A, digit_B in [[0,0],[0,1],[1,0]]:
            dp1[i+1] += dp1[i]

            if digit_A + digit_B == int(L[i]):
                dp2[i+1] += dp2[i]
            elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
            dp1[i+1] %= MOD
            dp2[i+1] %= MOD i range(1,len(L)) range 1 len(L) len L for digit_A, digit_B in [[0,0],[0,1],[1,0]]:
            dp1[i+1] += dp1[i]

            if digit_A + digit_B == int(L[i]):
                dp2[i+1] += dp2[i]
            elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
            dp1[i+1] %= MOD
            dp2[i+1] %= MOD digit_A digit_B [[0,0],[0,1],[1,0]] [0,0] 0 0 [0,1] 0 1 [1,0] 1 0 dp1[i+1] += dp1[i] dp1[i+1] dp1 i+1 i 1 dp1[i] dp1 i if digit_A + digit_B == int(L[i]):
                dp2[i+1] += dp2[i]
            elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
             digit_A + digit_B == int(L[i]) digit_A + digit_B digit_A digit_B int(L[i]) int L[i] L i dp2[i+1] += dp2[i] dp2[i+1] dp2 i+1 i 1 dp2[i] dp2 i elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
             digit_A + digit_B < int(L[i]) digit_A + digit_B digit_A digit_B int(L[i]) int L[i] L i dp1[i+1] += dp2[i] dp1[i+1] dp1 i+1 i 1 dp2[i] dp2 i 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 ans = dp1[len(L)] + dp2[len(L)] ans dp1[len(L)] + dp2[len(L)] dp1[len(L)] dp1 len(L) len L dp2[len(L)] dp2 len(L) len L print(ans % MOD) print ans % MOD ans MOD dp2 = [0]*100010 [0]*100010 dp2 L = input() input() L dp1 = [0]*100010 [0]*100010 dp1 MOD = 10**9 + 7 10**9 + 7 MOD ans = dp1[len(L)] + dp2[len(L)] dp1[len(L)] + dp2[len(L)] ans
MOD = 10**9 + 7

L = input()

dp1 = [0]*100010 # dp1[k]: 先頭からk桁について，A+B < L が確定している (A,B) の数
dp2 = [0]*100010 # dp2[k]: 先頭からk桁について，A+B と L が一致している (A,B) の数
dp1[1], dp2[1] = 1, 2

for i in range(1,len(L)):
    for digit_A, digit_B in [[0,0],[0,1],[1,0]]:
            dp1[i+1] += dp1[i]

            if digit_A + digit_B == int(L[i]):
                dp2[i+1] += dp2[i]
            elif digit_A + digit_B < int(L[i]):
                dp1[i+1] += dp2[i]
            
            dp1[i+1] %= MOD
            dp2[i+1] %= MOD

ans = dp1[len(L)] + dp2[len(L)]
print(ans % MOD)