#include<bits/stdc++.h>
using namespace std;
#define int long long
#define MOD 1000000007
int fac_mod(int x) {
static vector<int> v = {1};
while (v.size() - 1 < x) {
v.push_back(v.back() * v.size() % MOD);
}
return v[x];
}
int pow_mod(int x, int p) {
int r = 1;
while (p > 0) {
if (p % 2 == 1) {
r *= x;
r %= MOD;
}
p /= 2;
x *= x;
x %= MOD;
}
return r;
}
int inv_mod(int x) {
return pow_mod(x, MOD - 2);
}
int inv_fac_mod(int x) {
static vector<int> v = {1};
while (v.size() - 1 < x) {
v.push_back(inv_mod(fac_mod(v.size())));
}
return v[x];
}
int bin_mod(int n, int k) {
if (k < 0 || k > n) {
return 0;
}
return fac_mod(n) * inv_fac_mod(n - k) % MOD * inv_fac_mod(k) % MOD;
}
int cat_mod(int n) {
return bin_mod(n * 2, n) * inv_fac_mod(n + 1) % MOD;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int N;
cin>>N;
int ans=0;
for(int i=1;i<N;i++){
int j=N-1-i;
if(i>j){
ans+=cat_mod(i)*fac_mod(i)%MOD*cat_mod(j)%MOD*fac_mod(j)%MOD;
ans%=MOD;
}
}
cout<<ans<<'\n';
return 0;
}