#include <bits/stdc++.h>
using namespace std;
inline int mul(int a, int b) { return (int)((long long int)a * b % 998244353); }
inline int pow(int a, int b) {
  int res = 1;
  while (b > 0) {
    if (b & 1) res = mul(res, a);
    a = mul(a, a);
    b >>= 1;
  }
  return res;
}
inline int inv(int x) { return pow(x, 998244353 - 2); }
int n, ans = 0, facn = 1, fac, t;
inline int F(int x) { return mul(x - 1, x - 1) + 1; }
int main(void) {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) facn = mul(i, facn);
  ans = mul(mul(facn, n), mul(mul(facn, n) + 1, inv(2)));
  fac = facn;
  for (int i = 1; i < n; i++) {
    if (i > 1) fac = mul(fac, inv(n - i + 2));
    t = mul(mul(facn, inv(fac)), F(n - i + 1));
    ans = (ans - mul(i, t) + 998244353) % 998244353;
    t = (facn - t + 998244353) % 998244353;
    ans = (ans - mul(n + i, t) + 998244353) % 998244353;
  }
  t = facn - n + 998244353;
  ans = (ans - mul(t, n) + 998244353) % 998244353;
  printf("%d\n", ans);
  return 0;
}
