l = input()
n = len(l)
mod = 10 ** 9 + 7
memo = [1]
memo2 = [1]

for i in range(n):
    memo.append(memo[-1] * 3 % mod)
    memo2.append(memo2[-1] * 2 % mod)

i = 1
j = -1
ans = 0

for c in l:
    if c == '1':
        j += 1
        ans += (memo[n-i] ) * memo2[j]
        ans %= mod
    i+=1
ans += memo2[j+1]
ans %= mod
print(ans) 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 memo = [1] memo [1] 1 memo2 = [1] memo2 [1] 1 for i in range(n):
    memo.append(memo[-1] * 3 % mod)
    memo2.append(memo2[-1] * 2 % mod) i range(n) range n memo.append(memo[-1] * 3 % mod) memo.append memo append memo[-1] * 3 % mod memo[-1] * 3 memo[-1] memo -1 3 mod memo2.append(memo2[-1] * 2 % mod) memo2.append memo2 append memo2[-1] * 2 % mod memo2[-1] * 2 memo2[-1] memo2 -1 2 mod i = 1 i 1 j = -1 j -1 ans = 0 ans 0 for c in l:
    if c == '1':
        j += 1
        ans += (memo[n-i] ) * memo2[j]
        ans %= mod
    i+=1 c l if c == '1':
        j += 1
        ans += (memo[n-i] ) * memo2[j]
        ans %= mod
     c == '1' c '1' j += 1 j 1 ans += (memo[n-i] ) * memo2[j] ans (memo[n-i] ) * memo2[j] memo[n-i] memo n-i n i memo2[j] memo2 j ans %= mod ans mod i+=1 i 1 ans += memo2[j+1] ans memo2[j+1] memo2 j+1 j 1 ans %= mod ans mod print(ans) print ans l = input() input() l i = 1 1 i memo2 = [1] [1] memo2 ans %= mod mod ans memo = [1] [1] memo ans %= mod mod ans n = len(l) len(l) n ans = 0 0 ans ans += memo2[j+1] memo2[j+1] ans mod = 10 ** 9 + 7 10 ** 9 + 7 mod ans += (memo[n-i] ) * memo2[j] (memo[n-i] ) * memo2[j] ans j = -1 -1 j j += 1 1 j i+=1 1 i
l = input()
n = len(l)
mod = 10 ** 9 + 7
memo = [1]
memo2 = [1]

for i in range(n):
    memo.append(memo[-1] * 3 % mod)
    memo2.append(memo2[-1] * 2 % mod)

i = 1
j = -1
ans = 0

for c in l:
    if c == '1':
        j += 1
        ans += (memo[n-i] ) * memo2[j]
        ans %= mod
    i+=1
ans += memo2[j+1]
ans %= mod
print(ans)
