#!/usr/bin/env python3
MOD = 10**9+7

n = int(input())
X = list(map(int, input().split()))
w2 = 0
ones = 0
ans = 0
for x in X:
    # w2 %= MOD   oops, without this intermediate results become large and complexity is quadratic
    if x == 1: ones += 1
    elif x == 2:
        w2 += ones + w2
    else:
        ans += w2
print(ans % MOD)
