#include <bits/stdc++.h>
using namespace std;
int w[262144], a[262144 | 1], a1[262144], a2[262144], a3[262144], jc[262144],
    jv[262144], iv[262144];
inline void prepare(), NTT(int*, int, bool);
inline int pow(int, int), Fmod(const int&), c(int, int);
int main() {
  int n, K, l;
  cin >> n >> K >> l, prepare();
  int lc(a[n << 1 | 1]), lm(1 << lc);
  for (int i(0), j, w1(262144 / lm), w2(0); i < lm; ++i, w2 += w1) {
    int i1((w[w2] * 1ll * (998244353 + 1 - w[w2]) << 1) % 998244353),
        i2(Fmod(1 - i1));
    for (j = a2[0] = a3[0] = 1; j <= n; ++j)
      a2[j] = a2[j - 1] * 1ll * i1 % 998244353,
      a3[j] = a3[j - 1] * 1ll * i2 % 998244353;
    for (j = K; j <= n; ++j)
      a1[i] =
          (a1[i] + c(n, j) * 1ll * a2[j] % 998244353 * a3[n - j]) % 998244353;
  }
  NTT(a1, lc, 1);
  int ans(0);
  for (int i(lm); ~i; --i) ans = (ans + a1[i] * 1ll * iv[i + 1]) % 998244353;
  ans = ans * 1ll * l % 998244353;
  return printf("%d", ans), 0;
}
inline void NTT(int* a, int lc, bool type) {
  static int go[262144];
  static unsigned long long a1[262144];
  int n(1 << lc);
  for (int i(1); i ^ n; ++i) {
    go[i] = go[i >> 1] >> 1 | (i & 1) << lc - 1;
    if (i < go[i]) swap(a[i], a[go[i]]);
  }
  for (int i(0); i ^ n; ++i) a1[i] = a[i];
  for (int i(1), j, k, t, w1, w2; i ^ n; i <<= 1)
    for (j = 0, w1 = 262144 / (i << 1); j ^ n; j += i << 1)
      for (k = j, w2 = 0; k ^ (j | i); ++k, w2 += w1)
        t = a1[k + i] * w[w2] % 998244353, a1[k + i] = a1[k] + 998244353 - t,
        a1[k] += t;
  for (int i(0); i ^ n; ++i) a[i] = a1[i] % 998244353;
  if (type) {
    reverse(a + 1, a + n);
    int iv(998244353 - ((998244353 - 1) >> lc));
    for (int i(0); i ^ n; ++i) a[i] = a[i] * 1ll * iv % 998244353;
  }
}
inline int c(int n, int r) {
  return jc[n] * 1ll * jv[r] % 998244353 * jv[n - r] % 998244353;
}
inline int Fmod(const int& x) { return x + ((x >> 31) & 998244353); }
inline void prepare() {
  w[w[0] = iv[1] = 1] = pow(3, (998244353 - 1) / 262144);
  for (int i(2); i < 262144; ++i)
    w[i] = w[i - 1] * 1ll * w[1] % 998244353,
    iv[i] = (998244353 - 998244353 / i) * 1ll * iv[998244353 % i] % 998244353;
  for (int i(0); 1 << i <= 262144; ++i) a[1 << i] = i;
  for (int i(262144); i; --i) a[i] = a[i] ? a[i] : a[i + 1];
  for (int i(jc[0] = jv[0] = 1); i < 262144; ++i)
    jc[i] = jc[i - 1] * 1ll * i % 998244353,
    jv[i] = jv[i - 1] * 1ll * iv[i] % 998244353;
}
inline int pow(int x, int y) {
  int ans(1);
  while (y) {
    if (y & 1) ans = ans * 1ll * x % 998244353;
    x = x * 1ll * x % 998244353, y >>= 1;
  }
  return ans;
}
