#include<bits/stdc++.h>
#define ll long long
using namespace std;
inline ll readin()
{
    ll x=0,f=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    return x*f;
}
const ll mod = 1e9 + 7;
const int N = 1e6 + 5;
ll n, ans, jc[N], njc[N], tmp;
ll qmod(ll a, ll b)
{
    ll ans = 1;
    while(b)
    {
        if(b & 1) ans = ans * a % mod;
        a = a * a % mod;
        b >>= 1;
    }
    return ans;
}
int main()
{
    register int i;
    ans = 0;
    n = readin();
    jc[0] = 1;
    for(i = 1; i <= n; ++i) jc[i] = i * jc[i-1] % mod;
    njc[n] = qmod(jc[n], mod - 2);
    for(i = n - 1; i + 1; --i) njc[i] = njc[i+1] * (i + 1) % mod;

    for(i = 0; i <= n / 2; ++i)
    {
        if((n - i) & 1) continue;
        tmp = jc[n-i] * njc[i] % mod;
        tmp = tmp * njc[n-2*i] % mod;
        tmp = tmp * jc[n-i-1] % mod;
        ans = (ans + tmp) % mod;
    }
    ans = ans * 2 * n % mod;
    printf("%lld",ans);
    return 0;
}
