/*
school: High School for Gifted Students, University of Science;
author: Khoi
*/
#include<bits/stdc++.h>
using namespace std;
template <class T>bool maximize(T &a, const T &b) {if (a < b) {a = b;return true;}return false;}
template <class T>bool minimize(T &a, const T &b) {if (a > b) {a = b;return true;}return false;}
template <class T> istream& operator>> (istream& in, vector <T>& a){ for (auto &x: a){ in >> x; } return in; }
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; i++)
#define FORD(i, b, a) for (int i = (b), _a = (a); i >= _a; i--)
#define REP(i, n) for (int i = 0, _n = (n); i < _n; i++)
#define db(...) cerr << "[" << #__VA_ARGS__ << ": ", debug(__VA_ARGS__), cerr << "\n";
#define ll long long
#define fi first
#define se second
/* Author: Khoi Pham Phuc Minh */
/** END OF TEMPLATE. DRINK A CUP OF TIGERSUGAR BEFORE READING MY CODE. **/
const int MAXN = 2e5 + 5;
const int m = 1e9 + 7;
void algovate();
int main(void) {
#ifdef ONLINE_JUDGE
// freopen("tenbai.inp", "r", stdin);
// freopen("tenbai.out", "w", stdout);
#endif
cin.tie(0), cout.tie(0) -> sync_with_stdio(0);
int ntest = 1;
//cin >> ntest;
REP(gspmk, ntest) {
// cout << "Case #" << gspmk << ": ";
algovate();
}
#ifdef gspmk_algovate_local
auto end = chrono::steady_clock::now();
cout << endl;
cout << "Excution time : " << chrono::duration_cast<chrono::milliseconds> (end - start).count() << "[ms]" << endl;
#endif
return (0^0);
}
ll n;
ll mu(ll a, ll b) {
ll ans = 1;a %= m;
while (b > 0) { if (b & 1) ans = (ans * a) % m; a = (a * a) % m; b >>= 1; }
return ans;
}
void algovate(void) {
cin >> n;
ll k = (mu((n + 1) / 2, (n + 1) / 2) * mu(n / 2, n / 2)) % m, d = (mu(n / 2, (n + 1) / 2) * mu((n + 1) / 2, n / 2)) % m;
cout << (k + d) % m <<"\n";
}
/*** BUBBLE TEA IS GREAT. MY CODE IS AMAZING :D ***/
LyoKICAgIHNjaG9vbDogSGlnaCBTY2hvb2wgZm9yIEdpZnRlZCBTdHVkZW50cywgVW5pdmVyc2l0eSBvZiBTY2llbmNlOwogICAgYXV0aG9yOiBLaG9pCiAqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPGNsYXNzIFQ+Ym9vbCBtYXhpbWl6ZShUICZhLCBjb25zdCBUICZiKSB7aWYgKGEgPCBiKSB7YSA9IGI7cmV0dXJuIHRydWU7fXJldHVybiBmYWxzZTt9CnRlbXBsYXRlIDxjbGFzcyBUPmJvb2wgbWluaW1pemUoVCAmYSwgY29uc3QgVCAmYikge2lmIChhID4gYikge2EgPSBiO3JldHVybiB0cnVlO31yZXR1cm4gZmFsc2U7fQp0ZW1wbGF0ZSA8Y2xhc3MgVD4gaXN0cmVhbSYgb3BlcmF0b3I+PiAoaXN0cmVhbSYgaW4sIHZlY3RvciA8VD4mIGEpeyBmb3IgKGF1dG8gJng6IGEpeyBpbiA+PiB4OyB9IHJldHVybiBpbjsgfQoKI2RlZmluZSBGT1IoaSwgYSwgYikgZm9yIChpbnQgaSA9IChhKSwgX2IgPSAoYik7IGkgPD0gX2I7IGkrKykKI2RlZmluZSBGT1JEKGksIGIsIGEpIGZvciAoaW50IGkgPSAoYiksIF9hID0gKGEpOyBpID49IF9hOyBpLS0pCiNkZWZpbmUgUkVQKGksIG4pIGZvciAoaW50IGkgPSAwLCBfbiA9IChuKTsgaSA8IF9uOyBpKyspCiNkZWZpbmUgZGIoLi4uKSBjZXJyIDw8ICJbIiA8PCAjX19WQV9BUkdTX18gPDwgIjogIiwgZGVidWcoX19WQV9BUkdTX18pLCBjZXJyIDw8ICJcbiI7CiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKCi8qIEF1dGhvcjogS2hvaSBQaGFtIFBodWMgTWluaCAqLwoKLyoqIEVORCBPRiBURU1QTEFURS4gRFJJTksgQSBDVVAgT0YgVElHRVJTVUdBUiBCRUZPUkUgUkVBRElORyBNWSBDT0RFLiAqKi8KCmNvbnN0IGludCBNQVhOID0gMmU1ICsgNTsKY29uc3QgaW50IG0gPSAxZTkgKyA3OwoKdm9pZCBhbGdvdmF0ZSgpOwoKaW50IG1haW4odm9pZCkgewojaWZkZWYgT05MSU5FX0pVREdFCi8vICAgIGZyZW9wZW4oInRlbmJhaS5pbnAiLCAiciIsIHN0ZGluKTsKLy8gICAgZnJlb3BlbigidGVuYmFpLm91dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCiAgICBjaW4udGllKDApLCBjb3V0LnRpZSgwKSAtPiBzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBpbnQgbnRlc3QgPSAxOwogICAgLy9jaW4gPj4gbnRlc3Q7CiAgICBSRVAoZ3NwbWssIG50ZXN0KSB7CiAgICAgICAgLy8gY291dCA8PCAiQ2FzZSAjIiA8PCBnc3BtayA8PCAiOiAiOwogICAgICAgIGFsZ292YXRlKCk7CiAgICB9CiNpZmRlZiBnc3Bta19hbGdvdmF0ZV9sb2NhbAogICAgYXV0byBlbmQgPSBjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CiAgICBjb3V0IDw8IGVuZGw7CiAgICBjb3V0IDw8ICJFeGN1dGlvbiB0aW1lIDogIiA8PCBjaHJvbm86OmR1cmF0aW9uX2Nhc3Q8Y2hyb25vOjptaWxsaXNlY29uZHM+IChlbmQgLSBzdGFydCkuY291bnQoKSA8PCAiW21zXSIgPDwgZW5kbDsKI2VuZGlmCiAgICByZXR1cm4gKDBeMCk7Cn0KCmxsIG47CgpsbCBtdShsbCBhLCBsbCBiKSB7CiAgICBsbCBhbnMgPSAxO2EgJT0gbTsKICAgIHdoaWxlIChiID4gMCkgeyBpZiAoYiAmIDEpIGFucyA9IChhbnMgKiBhKSAlIG07IGEgPSAoYSAqIGEpICUgbTsgYiA+Pj0gMTsgfQogICAgcmV0dXJuIGFuczsKfQoKdm9pZCBhbGdvdmF0ZSh2b2lkKSB7CiAgICBjaW4gPj4gbjsKICAgIGxsIGsgPSAobXUoKG4gKyAxKSAvIDIsIChuICsgMSkgLyAyKSAqIG11KG4gLyAyLCBuIC8gMikpICUgbSwgZCA9IChtdShuIC8gMiwgKG4gKyAxKSAvIDIpICogbXUoKG4gKyAxKSAvIDIsIG4gLyAyKSkgJSBtOwogICAgY291dCA8PCAoayArIGQpICUgbSA8PCJcbiI7Cn0KCi8qKiogQlVCQkxFIFRFQSBJUyBHUkVBVC4gTVkgQ09ERSBJUyBBTUFaSU5HIDpEICoqKi8K