func_code_string: #include <bits/stdc++.h>   using namespace std;   const int mod = 998244353;   long long int qpow(long long int x, long long int y) {     long long int ans = 1;     while (y) {       if (y & 1) ans = ans * x % mod;       x = x * x % mod;       y >>= 1;     }     return ans;   }   const int maxn = 1024 * 2;   long long int dp[maxn * 2][maxn][2];   long long int inv[maxn * 4];   long long int Solve(int n, int k) {     dp[1][0][1] = 1;     long long int tem = qpow(2, mod - 2);     long long int ans = 0;     for (int i = 1; i < maxn * 4; i++) inv[i] = qpow(i, mod - 2);     for (int i = 1; i <= 2 * n; i++) {       for (int j = 0; j <= n; j++) {         if (j >= k) {           ans = (ans + dp[i][j][0]) % mod;           ans = (ans + dp[i][j][1]) % mod;         }         if (j - 1 <= (2 * n - i) && j >= 1) {           if (j - 1 == 2 * n - i) {             dp[i + 1][j - 1][0] = (dp[i + 1][j - 1][0] + dp[i][j][0]) % mod;           } else if (j == 1) {             dp[i + 1][j - 1][1] = (dp[i + 1][j - 1][1] + dp[i][j][0]) % mod;           } else {             long long int send = (2 * n - (i + j - 1));             long long int reci = j - 1;             long long int invt = inv[send + reci];             dp[i + 1][j - 1][1] =                 (dp[i + 1][j - 1][1] + dp[i][j][0] * send % mod * invt % mod) %                 mod;             dp[i + 1][j - 1][0] =                 (dp[i + 1][j - 1][0] + dp[i][j][0] * reci % mod * invt % mod) %                 mod;           }         }         if (j + 1 <= (2 * n - i)) {           if (j + 1 == (2 * n - i)) {             dp[i + 1][j + 1][0] = (dp[i + 1][j + 1][0] + dp[i][j][1]) % mod;           } else {             long long int send = (2 * n - (i + j + 1));             long long int reci = j + 1;             long long int invt = inv[send + reci];             dp[i + 1][j + 1][1] =                 (dp[i + 1][j + 1][1] + dp[i][j][1] * send % mod * invt % mod) %                 mod;             dp[i + 1][j + 1][0] =                 (dp[i + 1][j + 1][0] + dp[i][j][1] * reci % mod * invt % mod) %                 mod;           }         }       }     }     return ans;   }   int main() {     int n, k, l;     scanf( %d%d%d , &n, &k, &l);     long long int ans = Solve(n, k) * qpow(2 * n + 1, mod - 2) % mod * l % mod;     printf( %lld , ans);   }   