#include <bits/stdc++.h>
using namespace std;
const int mod = 998244353;
long long n, k, pw[1005], F[505][505], G[505][505], ans;
void solve() {
  cin >> n >> k;
  if (k == 1) {
    cout << 0 << '\n';
    exit(0);
  }
  pw[0] = 1;
  for (int i = (1); i <= (2 * n); ++i) pw[i] = (pw[i - 1] * 2) % mod;
  memset(F, 0, sizeof(F));
  memset(G, 0, sizeof(G));
  for (int j = (n); j >= (2); --j) {
    F[j][j] = 2;
    for (int i = (j + 1); i <= (n); ++i)
      F[i][j] = (2 * F[i - 1][j] + 2 * (pw[i - j - 1] - F[i - j - 1][j])) % mod;
    for (int i = (j); i <= (n); ++i) F[i][j] = (F[i][j] + mod) % mod;
    for (int i = (1); i <= (n); ++i)
      G[i][j] = ((F[i][j] - F[i][j + 1] + mod) % mod);
  }
  for (int i = (1); i <= (n); ++i) G[i][1] = 2, F[i][1] = pw[i];
  ans = pw[n + n - 1];
  for (int i = (1); i <= (k); ++i) {
    int a = i, b = (k + i - 1) / i;
    if (a > n || b > n) continue;
    ans = ((ans - G[n][a] * (F[n - 1][b] +
                             max(0LL, pw[n - b - 1] - F[n - b - 1][b]))) %
               mod +
           mod) %
          mod;
  }
  cout << ans << '\n';
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  solve();
}
