#include using namespace std; inline long long pow(long long a, long long r) { long long ret = 1; while (r--) ret *= a; return ret; } inline long long fact(long long a) { long long ret = a; while (--a) ret *= a; return ret; } int main() { ios::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; if (a[i] == 0) { cout << -1 << '\n'; return 0; } } long long ans = 1; const int md = (int)1e9 + 7; for (int i = 0; i < n; i++) { if (a[i] >= 4 || ans > md) { cout << md << '\n'; return 0; } ans *= pow(a[i], fact(a[i])); } cout << md % ans << '\n'; return 0; }