#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define REP(i,n) for(int i=0; i=b; --i) #define ALL(c) (c).begin(), (c).end() typedef long long ll; typedef vector VI; typedef vector VL; typedef vector VVI; typedef vector VVL; typedef pair P; typedef pair PL; const ll mod = 1e9 + 7; int main(){ ll n; cin >> n; VL dp(n+1); dp[1] = 1; ll odd = 1, even = 0; FOR(i,2,n){ if (i % 2 == 0){ dp[i] = (i * odd) % mod; even = (even + dp[i]) % mod; }else{ dp[i] = (i * even) % mod; odd = (odd + dp[i]) % mod; } } cout << dp[n] << endl; return 0; }