#!/usr/bin/env python3 # %% import sys read = sys.stdin.buffer.read readline = sys.stdin.buffer.readline readlines = sys.stdin.buffer.readlines MOD = 10**9 + 7 # %% N, *B = map(int, read().split()) # %% def solve(B, end, start): dp = [0, 0, 0, 0] dp[2 * end + start] = 1 for x in B: newdp = [0, 0, 0, 0] if x == 0: newdp[0] += dp[0] newdp[0] += dp[2] newdp[3] += dp[3] elif x == 1: newdp[1] += dp[0] newdp[2] += dp[1] newdp[3] += dp[1] newdp[1] += dp[2] newdp[2] += dp[3] dp = [x % MOD for x in newdp] return dp[2 * end + start] # %% answer = sum(solve(B, i, j) for i in [0, 1] for j in [0, 1]) answer %= MOD print(answer)