#include <bits/stdc++.h>
using namespace std;
const int N = 1000100;
long long mod = 998244353;
long long fact[N];
long long invFact[N];
long long per[N];
long long mul(long long x, long long y) { return (x * y) % mod; }
long long add(long long x, long long y) { return (x + y) % mod; }
long long myPow(long long x, int k) {
  long long res = 1;
  while (k) {
    if (k & 1) res = mul(res, x);
    x = mul(x, x);
    k /= 2;
  }
  return res;
}
long long C(int x, int k) {
  return mul(fact[x], mul(invFact[k], invFact[x - k]));
}
int main() {
  long long n;
  cin >> n;
  fact[0] = 1;
  for (int i = 1; i < N; i++) {
    fact[i] = (fact[i - 1] * i) % mod;
  }
  invFact[n - 1] = myPow(fact[n - 1], mod - 2);
  for (int i = n - 2; i > 0; i--) {
    invFact[i] = mul(invFact[i + 1], i + 1);
  }
  long long ans = fact[n];
  for (int i = 1; i < n; i++) {
    ans = add(ans, mul(mul(C(n, i), fact[i]), add(fact[n - i], mod - 1)));
  }
  cout << ans;
  return 0;
}
