//#define LOCAL

#include <fstream>
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <cstring>
#include <climits>

#define int long long
//typedef long long ll;
#define rep(i,n) for(int i=0; i<(n); i++)

#define MOD 1000000007

using namespace std;



signed main()
{
#ifdef LOCAL
    ifstream in("input.txt");
    cin.rdbuf(in.rdbuf());
#endif

    int N;
    cin >> N;

    if (N == 1) {
        cout << 1 << endl;
        return 0;
    } else if (N == 2) {
        cout << 6 << endl;
        return 0;
    }

    int kakeru = 15;
    int purasu = 13;
    int pre_ans = 6;
    for (int i=3; i<=N; i++) {
        pre_ans = pre_ans * kakeru;
        pre_ans %= MOD;
        kakeru += purasu;
        kakeru %= MOD;
        purasu += 4;
        purasu %= MOD;
    }

    cout << pre_ans << endl;
}