#include <bits/stdc++.h>
using namespace std;
const long double Pi = 3.14159265359;
const long long MOD = 998244353ll;
long long const MAXN = (long long)1e6 + 10;
long long dp2[503][503];
int main() {
  ios::sync_with_stdio(0);
  int n, kk;
  cin >> n >> kk;
  long long l = 0, s, out = 0;
  for (int i = 1; i <= min(n, kk); i++) {
    dp2[1][1] = 2;
    for (int j = 2; j <= n; j++) {
      for (int k = 1; k <= min(i, n); k++) {
        if (k == 1) {
          for (int f = 1; f < 503; f++) {
            dp2[j][k] += dp2[j - 1][f];
            dp2[j][k] %= MOD;
          }
        } else
          dp2[j][k] = dp2[j - 1][k - 1];
      }
    }
    s = 0;
    for (int j = 1; j <= min(n, i); j++) {
      s += dp2[n][j];
      s %= MOD;
    }
    s -= l;
    s %= MOD;
    if (s < 0) s += MOD;
    for (int i = 0; i < 503; i++) {
      fill(dp2[i], dp2[i] + 503, 0);
    }
    while (s < 0) s += MOD;
    dp2[1][1] = s;
    for (int j = 2; j <= n; j++) {
      for (int k = 1; k <= min(kk / i, n); k++) {
        if (k == 1) {
          for (int f = 1; f < 503; f++) {
            dp2[j][k] += dp2[j - 1][f];
            dp2[j][k] %= MOD;
          }
        } else
          dp2[j][k] = dp2[j - 1][k - 1];
      }
    }
    for (int j = 1; j <= min(n, kk / i); j++) {
      out += dp2[n][j];
      out %= MOD;
    }
    for (int i = 0; i < 503; i++) {
      fill(dp2[i], dp2[i] + 503, 0ll);
    }
    l += s;
    l %= MOD;
  }
  cout << out;
  return 0;
}
