#include using namespace std; using ll = long long int; ll dp[5010], cnt[5010], MOD = 1000000007; int main() { int N; cin >> N; dp[0] = 1; for(int i=0; i> val; cnt[val]++; } for(int i=0; i=0; k--) { (dp[k+1] += dp[k] * cnt[i]) %= MOD; } } ll fact = 1, ans = 0, cnt = 0; for(int i=N; i>=0; i--) { ll val = dp[i] * fact % MOD; if(i % 2 == 0) ans = (ans + val ) % MOD; else ans = (ans - val + MOD) % MOD; (fact *= (++cnt)) %= MOD; } cout << ans << endl; return 0; }