#include #include using namespace std; using namespace atcoder; using ll=int; using ld=long double; ld pie=3.14159265359; ll inf=80010010; ll mod=1000000007; int main(){ ll n; cin >> n; vectora(n); for (ll i = 0; i < n; i++) { cin >> a[i]; } sort(a.begin(),a.end(),greater()); if (a[a.size()-1]==0) { cout << -1 << endl; }else{ if (a[0]>=4) { cout << mod << endl; return 0; } ll x=1; for (ll i = 0; i < n; i++) { for (ll j = 0; j < a[i]*(a[i]-1); j++) { x*=a[i]; if (x>mod) { break; } } if (x>mod) { break; } } cout << mod%x << endl; } }