#include <bits/stdc++.h>
#pragma GCC optimize(3)
using namespace std;
const double PI = acos(-1.0);
const int N = 505;
int dp[N][N][2];
int n, k;
int max_common;
int rec(int ind, int len, int p) {
  if (ind == n) {
    return 1;
  }
  int &ans = dp[ind][len][p];
  if (ans >= 0) {
    return ans;
  }
  ans = 0;
  if (len > 0) {
    ans += rec(ind + 1, len - 1, p);
    ans %= 998244353;
  }
  ans += rec(ind + 1, max_common - 1, !p);
  ans %= 998244353;
  return ans;
}
int dpp[N];
int ar[N];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  dpp[1] = 1;
  ar[1] = 1;
  dpp[0] = ar[0] = 0;
  for (int i = 2; i <= n; i++) {
    memset(dp, -1, sizeof(dp));
    max_common = i;
    dpp[i] = rec(1, i - 1, 0);
    ar[i] = (dpp[i] - dpp[i - 1] + 998244353) % 998244353;
    ar[i] += 998244353;
    ar[i] %= 998244353;
  }
  long long ans = 0;
  for (int i = 1; i <= n; i++) {
    int j = min((k - 1) / i, n);
    ans = (ans + (1LL * ar[i] * dpp[j]) % 998244353) % 998244353;
  }
  cout << (ans * 2) % 998244353;
}
