#include "bits/stdc++.h" //#include using namespace std; //using namespace atcoder; //#define int long long #define ll long long ll INF = (1LL << 60); int mod = 1000000007; using P = pair; signed main() { int N; cin >> N; vectorA(N); for (int i = 0; i < N; i++)cin >> A[i]; for (int i = 0; i < N; i++) { if (A[i] == 0) { cout << -1 << endl; return 0; } } ll now = 1; for (int i = 0; i < N; i++) { if (now >= mod) { cout << mod << endl; return 0; } if (A[i] == 1) { } else if (A[i] == 2) { now *= 4; } else if (A[i] == 3) { now *= 3 * 3 * 3 * 3 * 3 * 3; } else { cout << mod << endl; return 0; } } if (now >= mod) { cout << mod << endl; return 0; } cout << mod % now << endl; return 0; }