//#define __USE_MINGW_ANSI_STDIO 0 #include using namespace std; typedef long long ll; typedef vector VI; typedef vector VVI; typedef vector VL; typedef vector VVL; typedef pair PII; #define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i) #define REP(i, n) FOR(i, 0, n) #define ALL(x) x.begin(), x.end() #define IN(a, b, x) (a<=x&&x T &chmin(T &a, const T &b) { return a = min(a, b); } template T &chmax(T &a, const T &b) { return a = max(a, b); } int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0}; signed main(void) { int n; cin >> n; ll suma = 1, sumb = 0; FOR(i, 2, n+1) { if(i%2==0) { (sumb += i*suma) %= MOD; } else { (suma += i*sumb) %= MOD; } if(i == n) { if(i%2==0) cout << i*suma%MOD << endl; else cout << i*sumb%MOD << endl; } } return 0; }