#include using namespace std; typedef long long ll; typedef pair pi; typedef vector vi; #define sz(x) ((ll)(x).size()) #define all(x) begin(x), end(x) #define rep(i, a, b) for(int i = a; i < (b); ++i) const ll mod = 1000000007, LIM = 200000 + 10; ll* inv = new ll[LIM] - 1; vector fact; ll comb(ll a, ll b) { return fact.at(a) * inv[fact.at(b)] % mod * inv[fact.at(a - b)] %mod; } ll d(ll n, ll i) { return comb(4*(n-i), 2*n); } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin.exceptions(ios::failbit); inv[1] = 1; rep(i,2,LIM) inv[i] = mod - (mod/ i) * inv[mod%i] % mod; ll n; cin >> n; fact.reserve(4*n); fact.push_back(1); for (ll i = 1; i < 4*n + 10; ++i) { fact.push_back((fact.at(i - 1) * i) % mod); } ll n_half = n / 2; ll sum = 0; ll sign = 1; for (ll i = 1; i <= n_half; i++, sign *= -1) { sum += sign * comb(n, i) * d(n, i) % mod; } cout << sum <<'\n'; }