#include <bits/stdc++.h>
using namespace std;
int n, k;
long long dp[502][502][2][2], dpp[502], dp2[502][502];
long long func(int idx, int pcount, int prev, int banaya, int K) {
  if (idx == n) {
    return banaya;
  }
  if (dp[idx][pcount][prev][banaya] != -1) return dp[idx][pcount][prev][banaya];
  long long ans = 0;
  if (prev == 0) {
    if (pcount + 1 <= K)
      ans = ans + func(idx + 1, pcount + 1, 0, banaya | (pcount + 1 == K), K);
    ans %= 998244353;
    ans = ans + func(idx + 1, 1, 1, banaya | (1 == K), K);
    ans %= 998244353;
  } else if (prev == 1) {
    if (pcount + 1 <= K)
      ans = ans + func(idx + 1, pcount + 1, 1, banaya | (pcount + 1 == K), K);
    ans %= 998244353;
    ans = ans + func(idx + 1, 1, 0, banaya | (1 == K), K);
    ans %= 998244353;
  }
  return dp[idx][pcount][prev][banaya] = ans;
}
long long func2(int idx, int pcount, int i) {
  if (idx == n) return 1;
  if (dp2[idx][pcount] != -1) return dp2[idx][pcount];
  long long ans = 0;
  if (pcount * i >= k) return 0;
  if ((pcount + 1) * i < k) ans = ans + func2(idx + 1, pcount + 1, i);
  ans %= 998244353;
  if (i < k) ans = ans + func2(idx + 1, 1, i);
  ans %= 998244353;
  return dp2[idx][pcount] = ans;
}
int main() {
  scanf("%d %d", &n, &k);
  memset(dp, -1, sizeof(dp));
  for (int i = 1; i <= n; i++) {
    memset(dp, -1, sizeof(dp));
    dpp[i] = func(1, 1, 0, (i == 1), i) + func(1, 1, 0, (i == 1), i);
    dpp[i] %= 998244353;
  }
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    memset(dp2, -1, sizeof(dp2));
    ans = ans + (func2(1, 1, i) * dpp[i]) % 998244353;
    ans %= 998244353;
  }
  printf("%I64d\n", ans);
  return 0;
}
