#include <bits/stdc++.h>
using namespace std;

const int mod = 1000000007;

long long fac[2000010], inv[2000010];

void ADD(int &x, int y) {
	x += y;
	if (x >= mod) x -= mod;
}

long long C(int n, int k) {
	if (k < 0 || n < k) return 0;
	return fac[n] * inv[k] % mod * inv[n - k] % mod;
}

long long power(int a, int b) {
	if (!b) return 1;
	long long tmp = power(a, b >> 1);
	return b & 1 ? tmp * tmp % mod * a % mod : tmp * tmp % mod;
}

int main() {
	fac[0] = 1; for (int i = 1; i <= 2000005; i++) fac[i] = fac[i - 1] * i % mod;
	inv[2000005] = power(fac[2000005], mod - 2);
	for (int i = 2000004; i >= 0; i--) inv[i] = inv[i + 1] * (i + 1) % mod;
	int n; cin >> n; n--;
	long long ans = 0;
	for (int i = n & 1 ? 0 : 1; i <= n; i += 2) {
		ans = (ans + fac[n - i] * C(n - i + 1, i)) % mod;
	}
	cout << ans * 2 * (n + 1) % mod << endl;
	return 0;
}
