#include <bits/stdc++.h>
using namespace std;
using ull = unsigned long long;
using ll = long long;
using pi = pair<int, int>;
using vi = vector<int>;
using vll = vector<ll>;
using vull = vector<ull>;
using vvi = vector<vi>;
using vpi = vector<pi>;
using vvpi = vector<vpi>;
const int MOD = 998244353;
int mod(ll a) {
  a %= MOD;
  if (a < 0) a += MOD;
  return a;
}
int inv(ll a) {
  a = mod(a);
  if (a == 1) return a;
  return mod(1LL * (-MOD / a) * inv(MOD % a));
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  ll n;
  cin >> n;
  vi fact(n + 1, 1);
  for (int i = 1; i <= n; ++i) {
    fact[i] = (1LL * fact[i - 1] * i) % MOD;
  }
  vi ifact(n + 1, 1);
  for (int i = 1; i <= n; ++i) {
    ifact[i] = (1LL * ifact[i - 1] * inv(i)) % MOD;
  }
  ll ans = fact[n];
  for (int i = 1; i <= n - 1; ++i) {
    int ch = (((1LL * ifact[i] * ifact[n - i]) % MOD) * fact[n]) % MOD;
    int fi = fact[i];
    int nfi = fact[n - i] - 1;
    ll curr = (1LL * fi * nfi) % MOD;
    curr = (curr * ch) % MOD;
    ans = (ans + curr) % MOD;
  }
  cout << ans << '\n';
}
