#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e6+10;
const ll mod = 1e9+7;
ll n;
ll pw[N];

ll qpow(ll a,ll b,ll p)
{
    ll res = 1;
    for(;b;b>>=1)
    {
        if(b&1)
        {
            res = res*a%p;
        }
        a = a*a%p;
    }
    return res;
}


ll C(ll a,ll b)
{
    return pw[a]*qpow(pw[b],mod-2,mod)%mod*qpow(pw[a-b],mod-2,mod)%mod;
}

void solve()
{
    cin>>n;
    if(n<=2)
    {
        cout<<0<<'\n';
        return ;
    }
    ll a = n/3*2-n/2;
    ll b = n-n/3;
    ll c = n/3;

    ll res = C(c,a)*C(b,c-a)%mod*pw[n/3]%mod*pw[n-n/3]%mod;
    // cout<<cnt1<<' '<<cnt2<<' '<<C(cnt2,cnt1)<<' '<<pw[cnt2]<<' '<<pw[cnt1]<<'\n';

    cout<<res<<'\n';


//1905120
}

int main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    pw[0]=1;
    for(ll i=1;i<=N-1;i++)
    {
        pw[i]=pw[i-1]*i%mod;
    }
    int t=1;
    // cin>>t;
    while(t--)
    {
        solve();

    }


    return 0;
}