#include using namespace std; using namespace atcoder; using mint = modint998244353; int main(){ ios::sync_with_stdio(false); cin.tie(0); int N; long long B, C; cin >> N >> B >> C; vector fact(N + 1), inv(N + 1), dp = {1}; vector> coef(2, vector(N + 1)); fact[0] = 1; for(int i = 1; i <= N; i++) fact[i] = i * fact[i - 1]; inv[N] = 1 / fact[N]; for(int i = N; i >= 1; i--) inv[i - 1] = i * inv[i]; for(int i = 0; i <= N; i++) coef[i & 1][i] = fact[N] * inv[N - i] * inv[i]; for(int i = 0; i < 60; i++){ auto tmp = convolution(dp, coef[C >> i & 1]); dp.resize((tmp.size() + 1) / 2); for(int j = B >> i & 1; j < tmp.size(); j += 2) dp[j >> 1] = tmp[j]; } cout << dp[0].val() << '\n'; }