#include #include using namespace std; long long mod=1000000007; int b[5100]; int c[5100]; long long dp[5100]; long long fact[5100]; int main(){ int M=5100; fact[0]=1; for(int i=1;i=0;j--){ dp[j+1]=(dp[j+1]+dp[j]*c[i])%mod; } } long long ret=0; for(int i=0;i<=a;i++){ if(i%2){ ret=(ret+mod-dp[i]*fact[a-i]%mod)%mod; }else{ ret=(ret+dp[i]*fact[a-i])%mod; } } printf("%lld\n",ret); }