#include <bits/stdc++.h>
const int maxN = 500 + 9, MOD = 998244353;
using namespace std;
long long zer[maxN][maxN], ons[maxN][maxN], dp[maxN];
long long n, k;
void calc(long long buc[maxN][maxN], long long from[maxN][maxN], long long u,
          long long i) {
  for (long long j = i + 1; j <= n && j - i < u; j++) {
    buc[i][u] = (buc[i][u] + from[j][u]) % MOD;
  }
  if (i + u > n) return;
  for (long long r = 1; r <= u; r++) {
    buc[i][u] = (buc[i][u] + from[i + u][r]) % MOD;
  }
}
long long fastPow(long long a, long long b) {
  long long ret = 1;
  while (b) {
    if (b & 1) ret = ret * a % MOD;
    b >>= 1, a = a * a % MOD;
  }
  return ret;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  cin >> n >> k;
  zer[n][1] = ons[n][1] = 1;
  for (long long i = n - 1; i >= 0; i--) {
    for (int u = 1; u <= n; u++) {
      calc(zer, ons, u, i);
      calc(ons, zer, u, i);
    }
  }
  for (int i = 1; i <= n; i++) {
    dp[i] = (zer[0][i] + ons[0][i]) % MOD;
  }
  k--;
  long long ans = 0;
  for (int i = 1; i <= min(k, n); i++) {
    for (int j = 1; long long(j) * i < k && j <= n; j++)
      ans = (ans + dp[i] * dp[j]) % MOD;
  }
  cout << ans * fastPow(2, MOD - 2) % MOD << '\n';
}
