mod = 1000000007
l = input()
n = len(l)
dp1 = [1]
dp2 = [1]
for i in range(1, n + 1):
    dp1.append((dp1[i - 1] * 3) % mod)
    dp2.append(dp2[i - 1])
    if l[n - i] == '1':
        dp2[i] = (dp2[i] * 2 + dp1[i - 1]) % mod
print(dp2[n]) mod = 1000000007 mod 1000000007 l = input() l input() input n = len(l) n len(l) len l dp1 = [1] dp1 [1] 1 dp2 = [1] dp2 [1] 1 for i in range(1, n + 1):
    dp1.append((dp1[i - 1] * 3) % mod)
    dp2.append(dp2[i - 1])
    if l[n - i] == '1':
        dp2[i] = (dp2[i] * 2 + dp1[i - 1]) % mod i range(1, n + 1) range 1 n + 1 n 1 dp1.append((dp1[i - 1] * 3) % mod) dp1.append dp1 append (dp1[i - 1] * 3) % mod dp1[i - 1] * 3 dp1[i - 1] dp1 i - 1 i 1 3 mod dp2.append(dp2[i - 1]) dp2.append dp2 append dp2[i - 1] dp2 i - 1 i 1 if l[n - i] == '1':
        dp2[i] = (dp2[i] * 2 + dp1[i - 1]) % mod l[n - i] == '1' l[n - i] l n - i n i '1' dp2[i] = (dp2[i] * 2 + dp1[i - 1]) % mod dp2[i] dp2 i (dp2[i] * 2 + dp1[i - 1]) % mod dp2[i] * 2 + dp1[i - 1] dp2[i] * 2 dp2[i] dp2 i 2 dp1[i - 1] dp1 i - 1 i 1 mod print(dp2[n]) print dp2[n] dp2 n dp1 = [1] [1] dp1 mod = 1000000007 1000000007 mod l = input() input() l dp2 = [1] [1] dp2 n = len(l) len(l) n
mod = 1000000007
l = input()
n = len(l)
dp1 = [1]
dp2 = [1]
for i in range(1, n + 1):
    dp1.append((dp1[i - 1] * 3) % mod)
    dp2.append(dp2[i - 1])
    if l[n - i] == '1':
        dp2[i] = (dp2[i] * 2 + dp1[i - 1]) % mod
print(dp2[n])