L=input()
N=len(L)
dp=[[0,0]for _ in range(N)]
dp[0][0]=1 #以下が確定（0）
dp[0][1]=2 #以下が確定してない（1,0）と逆
mod=10**9+7
for i in range(1,N):
  #以下モードは3倍に配給パターンが増える
  dp[i][0]+=3*dp[i-1][0]
  dp[i][0]%=mod
  if L[i]=='0':
    #(0,0)を配給し、そのまま
    dp[i][1]+=dp[i-1][1]
  else:
    #(0,0)を配給すれば、以下モードに移る
    dp[i][0]+=dp[i-1][1]
    #(1,0)(0,1)を配給する
    dp[i][1]+=dp[i-1][1]*2
  dp[i][0]%=mod
  dp[i][1]%=mod
print(sum(dp[-1])%mod) L=input() L input() input N=len(L) N len(L) len L [0,0]for _ in range(N) for _ in range(N) _ range(N) range N for _ in range(N) [0,0] 0 0 dp=[[0,0]for _ in range(N)] dp [[0,0]for _ in range(N)] dp[0][0]=1 dp[0][0] [0] dp 0 0 1 dp[0][1]=2 dp[0][1] [0] dp 0 1 2 mod=10**9+7 mod 10**9+7 10**9 10 9 7 for i in range(1,N):
  #以下モードは3倍に配給パターンが増える
  dp[i][0]+=3*dp[i-1][0]
  dp[i][0]%=mod
  if L[i]=='0':
    #(0,0)を配給し、そのまま
    dp[i][1]+=dp[i-1][1]
  else:
    #(0,0)を配給すれば、以下モードに移る
    dp[i][0]+=dp[i-1][1]
    #(1,0)(0,1)を配給する
    dp[i][1]+=dp[i-1][1]*2
  dp[i][0]%=mod
  dp[i][1]%=mod i range(1,N) range 1 N dp[i][0]+=3*dp[i-1][0] dp[i][0] [i] dp i 0 3*dp[i-1][0] 3 dp[i-1][0] [i-1] dp i-1 i 1 0 dp[i][0]%=mod dp[i][0] [i] dp i 0 mod if L[i]=='0':
    #(0,0)を配給し、そのまま
    dp[i][1]+=dp[i-1][1]
  else:
    #(0,0)を配給すれば、以下モードに移る
    dp[i][0]+=dp[i-1][1]
    #(1,0)(0,1)を配給する
    dp[i][1]+=dp[i-1][1]*2
   L[i]=='0' L[i] L i '0' dp[i][1]+=dp[i-1][1] dp[i][1] [i] dp i 1 dp[i-1][1] [i-1] dp i-1 i 1 1 dp[i][0]+=dp[i-1][1] dp[i][0] [i] dp i 0 dp[i-1][1] [i-1] dp i-1 i 1 1 dp[i][1]+=dp[i-1][1]*2 dp[i][1] [i] dp i 1 dp[i-1][1]*2 dp[i-1][1] [i-1] dp i-1 i 1 1 2 dp[i][0]%=mod dp[i][0] [i] dp i 0 mod dp[i][1]%=mod dp[i][1] [i] dp i 1 mod print(sum(dp[-1])%mod) print sum(dp[-1])%mod sum(dp[-1]) sum dp[-1] dp -1 mod L=input() input() L N=len(L) len(L) N dp=[[0,0]for _ in range(N)] [[0,0]for _ in range(N)] dp mod=10**9+7 10**9+7 mod
L=input()
N=len(L)
dp=[[0,0]for _ in range(N)]
dp[0][0]=1 #以下が確定（0）
dp[0][1]=2 #以下が確定してない（1,0）と逆
mod=10**9+7
for i in range(1,N):
  #以下モードは3倍に配給パターンが増える
  dp[i][0]+=3*dp[i-1][0]
  dp[i][0]%=mod
  if L[i]=='0':
    #(0,0)を配給し、そのまま
    dp[i][1]+=dp[i-1][1]
  else:
    #(0,0)を配給すれば、以下モードに移る
    dp[i][0]+=dp[i-1][1]
    #(1,0)(0,1)を配給する
    dp[i][1]+=dp[i-1][1]*2
  dp[i][0]%=mod
  dp[i][1]%=mod
print(sum(dp[-1])%mod)