#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 5;
const int mod = 998244353;
long long n;
long long fac[N], inv[N];
void chkmod(long long &x) { x = (x % mod + mod) % mod; }
long long powmod(long long x, long long k) {
  long long res = 1;
  while (k) {
    if (k & 1) res = res * x % mod;
    x = x * x % mod;
    k >>= 1;
  }
  return res;
}
void pre() {
  fac[0] = 1;
  for (int i = (1); i < (N); i++) fac[i] = fac[i - 1] * i % mod;
  for (int i = (0); i < (N); i++) inv[i] = powmod(fac[i], mod - 2);
}
long long comb(int n, int m) {
  if (!m) return 1;
  if (n < m) return 0;
  return fac[n] * inv[n - m] % mod * inv[m] % mod;
}
int main() {
  pre();
  scanf("%lld", &n);
  long long ans = powmod(3, n * n) - powmod(powmod(3, n) - 3, n);
  chkmod(ans);
  int cur = 1;
  for (int i = (1); i < (n + 1); i++) {
    long long tmp = (powmod(3, i) - 3) * powmod(3, n * (n - i)) % mod +
                    3 * powmod(powmod(3, n - i) - 1, n) % mod;
    chkmod(tmp);
    ans = ans + cur * comb(n, i) % mod * tmp % mod;
    chkmod(ans);
    cur = -cur;
  }
  printf("%lld\n", ans);
  return 0;
}
