#include <bits/stdc++.h>
inline void up(int &x, int y) {
  if ((x += y) >= 998244353) x -= 998244353;
}
int n, k, f[2][510][510], g[510], ans;
int main() {
  scanf("%d%d", &n, &k);
  f[0][0][0] = 1;
  for (int i = 0; i < n; i++) {
    int now = i & 1;
    int next = now ^ 1;
    memset(f[next], 0, sizeof(f[next]));
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= n; k++) {
        if (!f[now][j][k]) continue;
        up(f[next][j + 1][std::max(k, j + 1)], f[now][j][k]);
        up(f[next][1][std::max(k, 1)], f[now][j][k]);
      }
    }
  }
  for (int i = 0; i <= n; i++) {
    for (int j = 0; j <= n; j++) {
      up(g[j], f[n & 1][i][j]);
    }
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= n; j++) {
      if (i * j >= k) break;
      up(ans, 1LL * g[i] * g[j] % 998244353 * 499122177 % 998244353);
    }
  }
  printf("%d\n", ans);
  return 0;
}
