#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll M = 1e9 + 7;
ll jie[10000];
ll quick(ll a,ll n)
{
ll ans = 1;
while(n)
{
if(n & 1)
ans *= a;
ans %= M;
a = (a * a) % M;
n = n >> 1;
}
return ans;
}
ll zuhe(ll n,ll m)
{
ll ans = jie[n];
ans = (ans * quick(jie[m],M-2)) % M;
ans = (ans * quick(jie[n - m],M - 2)) % M;
ans %= M;
return ans;
}
int main()
{
ll n;
cin >> n;
jie[1] = 1;jie[0] = 1;
for(ll i = 2;i <= n;i++)
{
jie[i] = (i * jie[i - 1])% M;
}
ll result = 0;
for(ll k = 0;4 * k <= n - 1;k++)
{
result = (result + zuhe(n - 1, 4 * k) * zuhe(4 * k,2 * k))% M;
}
result %= M;
cout << result;
}
using namespace std;
typedef long long ll;
ll M = 1e9 + 7;
ll jie[10000];
ll quick(ll a,ll n)
{
ll ans = 1;
while(n)
{
if(n & 1)
ans *= a;
ans %= M;
a = (a * a) % M;
n = n >> 1;
}
return ans;
}
ll zuhe(ll n,ll m)
{
ll ans = jie[n];
ans = (ans * quick(jie[m],M-2)) % M;
ans = (ans * quick(jie[n - m],M - 2)) % M;
ans %= M;
return ans;
}
int main()
{
ll n;
cin >> n;
jie[1] = 1;jie[0] = 1;
for(ll i = 2;i <= n;i++)
{
jie[i] = (i * jie[i - 1])% M;
}
ll result = 0;
for(ll k = 0;4 * k <= n - 1;k++)
{
result = (result + zuhe(n - 1, 4 * k) * zuhe(4 * k,2 * k))% M;
}
result %= M;
cout << result;
}

京公网安备 11010502036488号