#include using i64 = long long; using u64 = unsigned long long; using u32 = unsigned; using u128 = unsigned __int128; using i128 = __int128; const int MOD = 1e9 + 7; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int N; std::cin >> N; i64 prod = 1; for (int i = 0; i < N; i++) { int x; std::cin >> x; if (x == 0) { std::cout << -1 << '\n'; return 0; } else if (x >= 4) { std::cout << MOD << '\n'; return 0; } i64 t = 1; if (x == 2) t = 4; else if (x == 3) t = 729; prod = prod * t; if (prod > MOD) { std::cout << MOD << '\n'; return 0; } } //! 如果最终答案小于MOD的话,是MOD模答案 std::cout << MOD % prod << '\n'; return 0; }