typedef long long ll;
const int MOD = 998244353;
void add( int &a, int b ) { if ((a += b) >= MOD) a -= MOD; }
int mul( int a, int b ) { return (ll)a * b % MOD; }
const int N = 2e6 + 3;
int inv[N];
struct C {
int n, k, r;
C() {}
C( int n, int k, int r = 1 ) : n(n), k(k), r(r) { }
void dn() {
r = mul(r, ++n);
r = mul(r, inv[n - k]);
}
void dk() {
r = mul(r, n - k++);
r = mul(r, inv[k]);
}
};
int main() {
inv[1] = 1;
for (int i = 2; i < N; i++)
inv[i] = ((ll)(MOD - inv[MOD % i]) * (MOD / i)) % MOD;
}