#include <bits/stdc++.h>
const int mo = 998244353;
const int N = 505;
int n, k;
int f[N], s[N];
inline int min(int a, int b) { return a > b ? b : a; }
int main() {
  scanf("%d%d", &n, &k);
  f[0] = 1;
  int lim = min(k - 1, n);
  for (int i = 1; i <= lim; ++i) {
    int sum = 0;
    s[i] = -f[n];
    for (int j = 1; j <= i; j++) {
      f[j] = (f[j - 1] << 1) % mo;
      sum = (sum + f[j]) % mo;
    }
    for (int j = i + 1; j <= n; j++) {
      f[j] = sum;
      sum = ((sum + f[j]) % mo - f[j - i] + mo) % mo;
    }
    s[i] = (f[n] + s[i] + mo) % mo;
  }
  int ans = 0;
  for (int i = 1; i <= lim; i++) {
    int lim2 = min((k - 1) / i, n);
    f[1] = s[i];
    int sum = f[1];
    for (int j = 2; j <= lim2; j++) {
      f[j] = (f[j - 1] << 1) % mo;
      sum = (sum + f[j]) % mo;
    }
    for (int j = lim2 + 1; j <= n; j++) {
      f[j] = sum;
      sum = ((sum + f[j]) % mo - f[j - lim2] + mo) % mo;
    }
    ans = (ans + f[n]) % mo;
  }
  printf("%d\n", ans);
  return 0;
}
