#include <bits/stdc++.h>
using namespace std;
long long modexp(long long x, long long n) {
  if (n == 0) return 1;
  long long y = modexp(x, n / 2);
  if (n % 2 == 0)
    return (y * y) % 998244353;
  else
    return (((y * y) % 998244353) * x) % 998244353;
}
long long inv(long long x) { return modexp(x, 998244353 - 2); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, ans = 0, i, j, s = 0, c = 0;
  cin >> n;
  long long dp[n + 1];
  dp[0] = 1;
  for (i = 1; i <= n; ++i)
    dp[i] = ((dp[i - 1] * (n - i + 1)) % 998244353 * inv(i)) % 998244353;
  ans = modexp(3ll, n * n);
  ans = (ans - modexp((modexp(3ll, n) - 3 + 998244353) % 998244353, n) +
         998244353) %
        998244353;
  for (i = 1; i <= n; ++i) {
    s = dp[i] *
        ((3ll * modexp((modexp(3ll, n - i) - 1 + 998244353) % 998244353, n)) %
             998244353 +
         (((modexp(3ll, i) - 3 + 998244353) % 998244353) *
          modexp(3ll, n * (n - i))) %
             998244353) %
        998244353;
    if (i % 2ll) s = (-s + 998244353) % 998244353;
    c = (c + s + 998244353) % 998244353;
  }
  cout << (ans - c + 998244353) % 998244353;
  return 0;
}
