#include #define CSP2026 using #define RP namespace #define PLUSPLUS std CSP2026 RP PLUSPLUS; #define debug(x) cout<<"clock="<n)return 0; else return C[n][m]; }signed main(){ int n=rd(),ans=0; fac[0]=1; for(int i=1;i<=n;++i)fac[i]=1ll*fac[i-1]*i%P; for(int i=0;i<=n;++i)for(int j=0;j<=i;++j){ if(j==0)C[i][j]=1; else C[i][j]=(C[i-1][j]+C[i-1][j-1])%P; }for(int i=1;i<=n;++i){ int cnt=getC(i-1,n-2-i+1-i); if(cnt)ans=(ans+1ll*fac[i]*cnt%P*fac[n-i])%P; }for(int i=1;i<=n;++i){ int cnt=2ll*getC(i-1,n-1-i+1-i); if(cnt)ans=(ans+1ll*fac[i]*cnt%P*fac[n-i])%P; }for(int i=1;i<=n;++i){ int cnt=getC(i-1,n-i+1-i); if(cnt)ans=(ans+1ll*fac[i]*cnt%P*fac[n-i])%P; }cout<