P=1e9+7; a[6000],n,t,ans,i,k; long dp[6000],f; main(){ scanf("%d",&n); for(;~scanf("%d",&t);)a[t]++; f=dp[0]=1; for(k=0;k=0;i--)dp[i+1]=(dp[i+1]+dp[i]*a[k])%P; for(i=0;i<=n;f=(f*++i)%P)ans=(ans+(n-i&1?-1:1)*f*dp[n-i])%P; printf("%d",(ans+P)%P); }