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;
}