#include <bits/stdc++.h>
using namespace std;
const long long oo = 1e18;
const int N = 510;
const int MOD = 998244353;
long long dp[N][N][2][2];
int n, k;
long long calc(int idx, int mx, bool did, bool color) {
  if (idx == n) return (did == 1);
  long long &ret = dp[idx][mx][did][color];
  if (ret != -1) return ret;
  ret = 0;
  for (int i = 1; idx + i <= n; ++i) {
    if (i <= mx)
      ret = (ret + calc(idx + i, mx, (did) || (i == mx), !color)) % MOD;
  }
  return ret;
}
long long dp2[N][N];
long long calc2(int idx, int allowed) {
  if (idx == n) return 1ll;
  long long &ret = dp2[idx][allowed];
  if (ret != -1) return ret;
  ret = 0;
  for (int put = 1; put + idx <= n; ++put) {
    if (put <= allowed) {
      ret = (ret + calc2(idx + put, allowed)) % MOD;
    }
  }
  return ret;
}
int main() {
  memset(dp, -1, sizeof dp);
  memset(dp2, -1, sizeof dp2);
  cin >> n >> k;
  long long go = 0;
  for (int idx = 1; idx <= n; ++idx) {
    if (idx >= k) continue;
    long long now = (calc(0, idx, 0, 0) + calc(0, idx, 0, 1)) % MOD;
    long long best = min(k / idx, n + 1);
    long long fn = calc2(0, best);
    go = (go + fn * now) % MOD;
  }
  cout << go << endl;
  return 0;
}
