#include <bits/stdc++.h>
#define f first
#define s second
#define INF 0x3f3f3f3f
#define LINF 0x3f3f3f3f3f3f3f3fll
using namespace std;

typedef long long int ll;
typedef pair<int, int> ii;
const int SEED = chrono::steady_clock::now().time_since_epoch().count();
mt19937 rng(SEED);

const int MOD = 1e9+7;
const int MAX = 1e6+10;
ll fact[MAX], inv[MAX], invf[MAX];

int C(int n, int k){
	if(n < k || k < 0)return 0;
	return fact[n] * invf[n-k] % MOD * invf[k] % MOD;
}

void test_case(){
	fact[0] = invf[0] = fact[1] = invf[1] = inv[1] = 1;
	int n;
	cin >> n;
	for(int i = 2; i <= n; i++){
		fact[i] = fact[i-1] * i % MOD;
		inv[i] = (MOD - MOD/i * inv[MOD % i] % MOD) % MOD;
		invf[i] = invf[i-1] * inv[i] % MOD;
	}
	ll ans = 0;
	for(int i = 0; i <= n; i++)
		if(i%2==0)ans += (C(i, n-i) + C(i-1, n-i-1))* fact[i] % MOD;
	ans = ans * 2 % MOD;
	cout << ans << endl;
}

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0); 
	int t = 1;
	//cin >> t;
	for(int i = 1; i <= t; i++){
		//cout << "Case #"<< i << ":" << endl;
		test_case();
	}
	return 0;
}