#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f, mod = 998244353;
const double pi = 3.1415926535897932, eps = 1e-6;
int n, k, mx[250005], f[505][505], pre[505], ans, fac[505][505], w[505][505],
    v[505], add[505][505];
int main() {
  scanf("%d%d", &n, &k);
  if (n == 1) {
    puts("0");
    return 0;
  }
  for (int(i) = (1); (i) <= (n); (i)++) mx[i] = min(k / i, n);
  for (int(i) = (1); (i) <= (n); (i)++) {
    f[i][0] = 1;
    pre[0] = 1;
    for (int(j) = (1); (j) <= (n); (j)++) {
      f[i][j] += pre[j - 1];
      f[i][j] %= mod;
      f[i][j] += mod;
      f[i][j] %= mod;
      if (j > i) f[i][j] -= pre[j - i - 1], f[i][j] %= mod;
      f[i][j] += mod;
      f[i][j] %= mod;
      pre[j] = (pre[j - 1] + f[i][j]) % mod;
    }
  }
  for (int(i) = (1); (i) <= (n); (i)++) {
    v[i] = f[i][n] - f[i - 1][n];
    v[i] %= mod;
    v[i] += mod;
    v[i] %= mod;
  }
  for (int(i) = (1); (i) <= (n); (i)++)
    for (int(j) = (1); (j) <= (n); (j)++)
      w[i][j] = (long long)v[i] * v[j] % mod * 2 % mod;
  for (int(i) = (1); (i) <= (n); (i)++) {
    for (int(j) = (1); (j) <= (mx[i]); (j)++) {
      ans += w[i][j];
      ans %= mod;
      ans += mod;
      ans %= mod;
    }
  }
  printf("%d\n", ans);
  return 0;
}
