#include using namespace std; using ll = int64_t; using ull = uint64_t; constexpr ll mod = 1e9 + 7; constexpr int bpow(int b, int e) { int r = 1; while (e > 0) { if (e&1) r = (1ll*r*b) % mod; b = (1ll*b*b) % mod; e /= 2; } return r; } constexpr inline int inv (int n) { return bpow(n, mod - 2); } constexpr int FSZ = 400001; ll fac[FSZ]; ll ifac[FSZ]; ll nck(int n, int k) { return ((1ll * fac[n] * ifac[k]) % mod) * ifac[n-k] % mod; } void init() { fac[0] = 1; for (int i = 1; i < FSZ; ++i) { fac[i] = (1ll*fac[i-1]*i) % mod; } ifac[FSZ-1] = inv(fac[FSZ-1]); for (int i = FSZ - 2; i >= 0; --i) { ifac[i] = (1ll*ifac[i+1]*(i+1)) % mod; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); // cout << setprecision(20); init(); int n; cin >> n; ll ret = 0; for (int i = 1; i <= n/2; ++i) { ll D = 2*n - 4*i; ll H = 2*n; ll elem = nck(n, i); elem *= nck(H+D, D); elem %= mod; if (i % 2) ret += elem; else ret -= elem; ret %= mod; } ret = (ret + mod) % mod; cout << ret << endl; return 0; }