#include using namespace std; using ll = long long; using ull = unsigned long long; using vi = vector; using vvi = vector>; using vll = vector; using pi = pair; using vpi = vector; constexpr ll mod = 1000000007LL; const int MAX = 500005; vll fact(MAX), factinv(MAX); ll choose(ll n, ll k) { return fact[n] * factinv[k] % mod * factinv[n-k] % mod; } ll modpow(ll b, ll e) { ll r = 1; while (e) { if (e & 1) { r = r * b % mod; } e >>= 1; b = b * b % mod; } return r; } void solve() { int n; cin >> n; ll ans = 0; for (int i = 1; i <= n; ++i) { int rem = 2 * n - 4 * i; if (rem < 0) break; ll cmb = choose(4 * (n - i), rem) * choose(n, i) % mod; if (i % 2 == 1) ans = (ans + cmb) % mod; else ans = (ans - cmb + mod) % mod; } cout << ans << endl; } int main() { fact[0] = 1; for (int i = 1; i < MAX; ++i) fact[i] = i * fact[i - 1] % mod; for (int i = 0; i < MAX; ++i) factinv[i] = modpow(fact[i], mod-2); assert(fact[564] * factinv[564] % mod == 1); ios_base::sync_with_stdio(false); cin.tie(0); int t = 1; //cin >> t; while (t--) { solve(); } return 0; }