#include <bits/stdc++.h>
using namespace std;
#define nn 65536*16
#define ll long long
#define mod 1000000007
ll f[nn],rf[nn];
ll qpow(ll x,ll y)
{
	ll res=1;
	while(y)
	{
		if(y&1) res=res*x%mod;
		x=x*x%mod;y=y/2;
	}
	return res;
}
ll C(ll x,ll y)
{
	if(x<0) return 0;
	if(x>y) return 0;
	return f[y]*rf[x]%mod*rf[y-x]%mod;
}
ll g[nn];
int main()
{
	f[0]=1;for(int i=1;i<nn;i++) f[i]=f[i-1]*i%mod;
	rf[nn-1]=qpow(f[nn-1],mod-2);
	for(int i=nn-2;i>=0;i--) rf[i]=rf[i+1]*(i+1)%mod;
	ll n;cin>>n;
	ll ans=0;
	for(int i=(n+1)/2;i<n;i++) g[i]=C(n-1-i,i-1)*f[i]%mod*f[n-i-1]%mod;
	for(int i=(n+1)/2;i<n;i++) ans+=i*(g[i]-g[i-1]),ans%=mod;
	cout<<(ans+mod)%mod;
    return 0;
}