#include <bits/stdc++.h>
using namespace std;
long long f[1000009];
long long mul(long long a, long long b) {
  return ((a % 998244353) * (b % 998244353)) % 998244353;
}
long long ad(long long a, long long b) {
  return ((a % 998244353) + (b % 998244353)) % 998244353;
}
void pre(long long n) {
  f[0] = 1;
  f[1] = 1;
  for (long long i = 2; i <= n + 5; i++) {
    f[i] = mul(f[i - 1], i);
  }
}
long long dp[1000009];
int main() {
  long long n;
  cin >> n;
  pre(n);
  dp[1] = 1;
  dp[2] = 2;
  for (long long i = 3; i <= n; i++) {
    dp[i] = ad(f[i], mul((dp[i - 1] - 1), i));
  }
  cout << dp[n] % 998244353 << endl;
  return 0;
}
