l = input()
len_l = len(l)

ans = 0

MOD = 1000000007
def pow_mod(x, y):
    if y == 0: return 1
    ans = 1
    while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
    return ans * x % MOD

keisuu = 1
for i, b in enumerate(l):
  if b == "1":
    ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD
    ans %= MOD
    keisuu *= 2
    keisuu %= MOD

ans += keisuu
ans %= MOD

print(ans) l = input() l input() input len_l = len(l) len_l len(l) len l ans = 0 ans 0 MOD = 1000000007 MOD 1000000007 def pow_mod(x, y):
    if y == 0: return 1
    ans = 1
    while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
    return ans * x % MOD pow_mod if y == 0: return 1
     y == 0 y 0 ans = 1 ans 1 while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
     y > 1 y 1 if y % 2 != 0: 
            ans *= x
            ans %= MOD
         y % 2 != 0 y % 2 y 2 0 ans *= x ans x ans %= MOD ans MOD x *= x x x x %= MOD x MOD y //= 2 y 2 return ans * x % MOD ans * x % MOD ans * x ans x MOD x x y y keisuu = 1 keisuu 1 for i, b in enumerate(l):
  if b == "1":
    ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD
    ans %= MOD
    keisuu *= 2
    keisuu %= MOD i b enumerate(l) enumerate l if b == "1":
    ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD
    ans %= MOD
    keisuu *= 2
    keisuu %= MOD b == "1" b "1" ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD ans (keisuu * pow_mod(3, len_l - i - 1)) % MOD keisuu * pow_mod(3, len_l - i - 1) keisuu pow_mod(3, len_l - i - 1) pow_mod 3 len_l - i - 1 len_l - i len_l i 1 MOD ans %= MOD ans MOD keisuu *= 2 keisuu 2 keisuu %= MOD keisuu MOD ans += keisuu ans keisuu ans %= MOD ans MOD print(ans) print ans ans += keisuu keisuu ans ans = 0 0 ans keisuu = 1 1 keisuu ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD (keisuu * pow_mod(3, len_l - i - 1)) % MOD ans def pow_mod(x, y):
    if y == 0: return 1
    ans = 1
    while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
    return ans * x % MOD def pow_mod(x, y):
    if y == 0: return 1
    ans = 1
    while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
    return ans * x % MOD pow_mod ans %= MOD MOD ans keisuu %= MOD MOD keisuu MOD = 1000000007 1000000007 MOD ans %= MOD MOD ans l = input() input() l len_l = len(l) len(l) len_l keisuu *= 2 2 keisuu
l = input()
len_l = len(l)

ans = 0

MOD = 1000000007
def pow_mod(x, y):
    if y == 0: return 1
    ans = 1
    while y > 1:
        if y % 2 != 0: 
            ans *= x
            ans %= MOD
        x *= x
        x %= MOD
        y //= 2
    return ans * x % MOD

keisuu = 1
for i, b in enumerate(l):
  if b == "1":
    ans += (keisuu * pow_mod(3, len_l - i - 1)) % MOD
    ans %= MOD
    keisuu *= 2
    keisuu %= MOD

ans += keisuu
ans %= MOD

print(ans)