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

#define co(n) cout<<n<<endl;
const double eps=1e-10,pi=3.1415926535898;
const int mod=1e9+7,maxn=1e6+10;
int T,n,m,k,x,y,a[maxn],b[maxn];

long long fac[maxn]={1,1},inv[maxn]={1,1},fac_inv[maxn]={1,1};

void init() {
	for (int i=2;i<maxn;++i) {
		fac[i] = i*fac[i-1]%mod;
		inv[i] = (mod-mod/i)*inv[mod%i]%mod;
		fac_inv[i] = fac_inv[i-1]*inv[i]%mod;
	}
}

long long C(int n, int m) {
	if (n < m or m < 0) return 0;
	return fac[n]*fac_inv[n-m]%mod*fac_inv[m]%mod;
}

int main(int argc, char const *argv[]) {
	init();
	long long ans1=0,ans2=0;
	scanf("%d", &n);
	for (int i=2;i<=n-1;i+=2) {
		ans1 += fac[i]*C(i-1, n-1-i)%mod;
	}
	for (int i=1;i<=n-1;i+=2) {
		ans2 += fac[i+1]*C(i+1, n-1-i)%mod;
	}
	printf("%lld\n", (ans1+ans2)*2%mod);
	return 0;
}

/*
#pragma GCC optimize("Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma")
#pragma GCC optimize("unroll-loops")
clock_t clk;
clk = clock();
if(clock() - clk > CLOCKS_PER_SEC * 0.9) 
      T
W     L
A C M E R
  E L   E
    E
*/