#include <bits/stdc++.h>
using namespace std;
long long int dp[515][515];
long long int pws[515];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n, k;
  cin >> n >> k;
  if (k == 1) {
    cout << 0;
    return 0;
  }
  pws[0] = 1;
  for (int i = 1; i <= 506; i++) {
    pws[i] = (pws[i - 1] * 2) % 998244353;
  }
  dp[0][0] = 1;
  dp[1][0] = 1;
  for (int cn = 1; cn <= 504; cn++) {
    dp[0][cn] = 1;
    dp[1][cn] = 2;
  }
  for (int len = 2; len <= 503; len++) {
    for (int cn = len; cn <= 503; cn++) {
      dp[len][cn] = pws[len];
    }
    dp[len][len - 1] = pws[len] - 1;
    dp[len][0] = 1;
    for (int cn = len - 2; cn >= 1; cn--) {
      dp[len][cn] = dp[len][cn + 1];
      for (int st = 0; len - cn - 1 - st >= 0; st++) {
        long long int curr = 1;
        if (st > 0) {
          curr *= dp[st - 1][cn + 1];
        }
        curr %= 998244353;
        if (len - cn - 1 - st > 0) {
          curr *= dp[len - cn - 1 - st - 1][cn];
        }
        dp[len][cn] -= curr % 998244353;
        dp[len][cn] %= 998244353;
      }
      dp[len][cn] %= 998244353;
      dp[len][cn] += 998244353;
      dp[len][cn] %= 998244353;
    }
  }
  long long int ans = 0;
  k--;
  for (int siz1 = 1; siz1 <= n; siz1++) {
    int siz2 = min(n + 2, k / siz1);
    if (siz1 == 1 && siz2 > 0) {
      ans += (dp[n - 1][siz1 - 1] * dp[n - 1][siz2 - 1]) % 998244353;
    } else if (siz2 > 0) {
      ans += (((dp[n - 1][siz1 - 1] - dp[n - 1][siz1 - 2]) % 998244353) *
              dp[n - 1][siz2 - 1]) %
             998244353;
    }
    ans %= 998244353;
  }
  ans *= 2;
  ans %= 998244353;
  ans += 998244353;
  ans %= 998244353;
  cout << ans;
  return 0;
}
