#include <bits/stdc++.h>
using namespace std;
long long v1[1010], v2[1010];
pair<long long, int> heights[1010];
long long grow(long long v1, long long v2, long long t1, long long t2,
               long long k) {
  long long res = t1 * v1;
  res = res / 100 * (100 - k);
  res += v2 * t2;
  return res;
}
long long MOD = 1000000000 + 7;
long long powmod(long long n, long long k, long long mod) {
  if (k == 0) return 1;
  if (k == 1) return n % mod;
  long long t = powmod(n, k / 2, mod);
  t *= t;
  t %= mod;
  if (k % 2) t *= n;
  t %= mod;
  return t;
}
int main() {
  long long n;
  cin >> n;
  if (n == 0LL) {
    cout << 1 << endl;
    return 0;
  }
  long long res = powmod(2, 2 * n - 1, MOD);
  res += powmod(2, (2 * n - 1) / 2, MOD);
  res %= MOD;
  cout << res << endl;
  return 0;
}
