#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e9 + 10, M = 510, MOD = 998244353, ML = 25;
int d[M][M], d1[M];
long long ansi[M];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, k, ans = 0;
  cin >> n >> k;
  for (int h = 1; h < min(k, n + 1); h++) {
    long long z = (k - 1) / h;
    d[1][1] = 2;
    d1[1] = 2;
    for (int i = 2; i <= n; i++) {
      d1[i] = 0;
      for (int j = 1; j <= h; j++) {
        d[i][j] = d[i - 1][j - 1];
        d1[i] = (d1[i] + d[i][j]) % MOD;
      }
      d[i][1] = d1[i - 1];
      d1[i] = (d1[i] + d[i][1]) % MOD;
    }
    long long te = d1[n];
    for (int i = 1; i < h; i++) {
      te = (te - ansi[i] + MOD) % MOD;
    }
    ansi[h] = te;
    d[1][1] = 1;
    d1[1] = 1;
    for (int i = 2; i <= n; i++) {
      d1[i] = 0;
      for (int j = 1; j <= min(z, n); j++) {
        d[i][j] = d[i - 1][j - 1];
        d1[i] = (d1[i] + d[i][j]) % MOD;
      }
      d[i][1] = d1[i - 1];
      d1[i] = (d1[i] + d[i][1]) % MOD;
    }
    ans = (ans + (te * d1[n])) % MOD;
  }
  cout << ans;
}
