#include using namespace std; #define int long long #define MOD 1000000007 map factMap; int inverse(int a); int sqmul(int a, int pow) { int res = 1; while(pow > 0) { if(pow & 1) res= (res * a)%MOD; a = (a*a)%MOD; pow >>= 1; } return res; } int fact(int n) { n = (n+MOD)%MOD; if(factMap.find(n) != factMap.end()) return factMap[n]; int res = (fact(n-1)*n)%MOD; factMap[n] = res; return res; } int comb(int n, int k) { if(k > n) return 0; return ((fact(n) * inverse(fact(k)))%MOD * inverse(fact(n-k)))%MOD; } int inverse(int a) { return sqmul(a, MOD -2); } signed main() { factMap[0]=1; int N; cin >> N; int res = 0; for(int i = 1; i <= (N+1)/2; i++) { int newres = (((i&1) ? 1 : -1) * comb(4*N - 4*i, 2*N) * sqmul(N+1-i, i)) % MOD; res = (res + newres)%MOD; } cout << (res + MOD)%MOD << '\n'; }