#ifdef _WIN32 # define LL "%I64d" #else # define LL "%Ld" #endif #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define null NULL #define mp make_pair #define pb(a) push_back(a) #define sz(a) ((int)(a).size()) #define all(a) a.begin() , a.end() #define fi first #define se second #define relaxMin(a , b) (a) = min((a),(b)) #define relaxMax(a , b) (a) = max((a),(b)) #define SQR(a) ((a)*(a)) typedef vector vi; typedef pair pii; typedef long long ll; const ll MOD = 1E9 + 7; ll Pow(ll w, ll step){ ll ret = 1; for(;step > 0;step >>= 1, w = (w * w) % MOD) if(step & 1) ret = (ret * w) % MOD; return ret; } int main(){ freopen("robots.in", "r", stdin); freopen("robots.out", "w", stdout); ll n; cin >> n; ll a = Pow(2, n); ll b = Pow(3, (n * (n - 1)) / 2); cout << (a * b) % MOD << '\n'; return 0; }