#include using namespace std; using Int = long long; const char newl = '\n'; template inline void chmin(T1 &a,T2 b){if(a>b) a=b;} template inline void chmax(T1 &a,T2 b){if(a void drop(const T &x){cout< vector read(size_t n){ vector ts(n); for(size_t i=0;i>ts[i]; return ts; } //INSERT ABOVE HERE signed main(){ cin.tie(0); ios::sync_with_stdio(0); const Int MOD = 1e9+7; Int n; cin>>n; auto as=read(n); for(Int a:as) if(a==0) drop(-1); Int dp[5]; for(Int i=1;i<5;i++){ Int p=1; for(Int j=1;j<=i;j++) p*=j; dp[i]=1; for(Int k=0;k=5){ res=MOD+1; break; } res*=dp[a]; } cout<