#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int N = 100010;const int MOD = 1000000007;LL pow(LL a, int n) { LL ret = 1; while(n) { if(n & 1) ret = ret * a % MOD; a = a * a % MOD ; n >>= 1; } return ret ;}LL inv(LL a) { return pow(a, MOD-2);}LL a[N];int main () { a[3] = 1; for(LL i=4;i<N;++i) { if(i & 1) a[i] = ((i*i%MOD-2*i)*a[i-1] + i*a[i-2] + 4) % MOD * inv(i-2) % MOD ; else a[i] = ((i*i%MOD-2*i)*a[i-1] + i*a[i-2] - 4) % MOD * inv(i-2) % MOD ; if(a[i] < 0) a[i] += MOD; } int n; while(cin >> n) cout << a[n] << endl; return 0;}


