#include <bits/stdc++.h>
using namespace std;
const int MAX = 510;
const int MOD = 998244353;
int n, k;
int save[MAX];
int dp[MAX][MAX][2];
int lim;
int call(int pos, int cnt, int touch) {
  if (pos > n) return touch;
  int &ret = dp[pos][cnt][touch];
  if (ret != -1) return ret;
  ret = call(pos + 1, 1, (lim == 1) or touch);
  if (cnt < lim) {
    ret += call(pos + 1, cnt + 1, ((cnt + 1) == lim) or touch);
    ret %= MOD;
  }
  return ret;
}
int fin[MAX][MAX];
int get(int pos, int cnt) {
  if (pos > n) return 1;
  int &ret = fin[pos][cnt];
  if (ret != -1) return ret;
  ret = get(pos + 1, 1);
  if (cnt < lim) {
    ret += get(pos + 1, cnt + 1);
    ret %= MOD;
  }
  return ret;
}
int main() {
  cin >> n >> k;
  k--;
  for (int i = 1; i <= min(n, k); i++) {
    memset(dp, -1, sizeof(dp));
    lim = i;
    save[i] = call(1, 0, 0);
  }
  long long ans = 0;
  for (int i = 1; i <= min(n, k); i++) {
    memset(fin, -1, sizeof(fin));
    lim = k / i;
    ans += (save[i] * (long long)get(2, 1)) % MOD;
    ans %= MOD;
  }
  cout << ans << endl;
  return 0;
}
