MOD = 10 ** 9 + 7
L = gets.chomp
N = L.size

dp1 = Array.new(N + 1, 0)
dp2 = Array.new(N + 1, 0)

dp1[0] = 1
dp2[0] = 2

L[1..-1].chars.map(&:to_i).each_with_index do |l, i|
  if l == 1
    dp1[i + 1] = dp1[i] * 3 + dp2[i]
    dp2[i + 1] = dp2[i] * 2
  else
    dp1[i + 1] = dp1[i] * 3
    dp2[i + 1] = dp2[i] * 1
  end

  dp1[i + 1] %= MOD
  dp2[i + 1] %= MOD
end

puts dp1[N - 1] + dp2[N - 1]
