#include <bits/stdc++.h>
using namespace std;
long long n, k, dp[2][505], f[2][505];
inline long long cut(long long a) { return a >= 998244353 ? a - 998244353 : a; }
int main() {
  scanf("%lld%lld", &n, &k);
  k--;
  long long ans = 0;
  for (long long i = 1, prenum = 0; i <= n; i++) {
    memset(dp, 0, sizeof dp);
    long long now = 1, pre = 0;
    dp[pre][0] = 1;
    for (long long tim = 1; tim <= n;
         tim++, swap(now, pre), memset(dp[now], 0, sizeof dp[now])) {
      for (long long j = 1; j <= min(tim, i); j++)
        dp[now][j] = cut(dp[now][j] + dp[pre][j - 1]),
        dp[now][1] = cut(dp[now][1] + dp[pre][j - 1]);
      if (tim >= i) dp[now][1] = cut(dp[now][1] + dp[pre][i]);
    }
    long long nownum = 0;
    for (long long j = 1; j <= i; j++) nownum = cut(nownum + dp[pre][j]);
    long long tmp = nownum;
    nownum = cut(nownum - prenum + 998244353);
    prenum = tmp;
    memset(f, 0, sizeof f);
    now = 1, pre = 0;
    f[pre][0] = 1;
    long long lim = k / i;
    for (long long tim = 1; tim <= n;
         tim++, swap(now, pre), memset(f[now], 0, sizeof f[now])) {
      for (long long j = 1; j <= min(lim, tim); j++)
        f[now][j] = cut(f[now][j] + f[pre][j - 1]),
        f[now][1] = cut(f[now][1] + f[pre][j - 1]);
      if (tim >= lim) f[now][1] = cut(f[now][1] + f[pre][lim]);
    }
    long long sum = 0;
    for (long long i = 1; i <= min(n, lim); i++) sum = cut(sum + f[pre][i]);
    ans = cut(ans + 1ll * sum * nownum / 2 % 998244353);
  }
  printf("%lld\n", ans);
}
