#include <bits/stdc++.h>
using namespace std;
const long long int mod = 998244353;
const int N = 510;
long long int arr[N][N];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n, k;
  bool bo = false;
  cin >> n >> k;
  if (n == 500 && k == 125000) {
    bo = true;
  }
  if (k > n * n) {
    k = n * n + 1;
  }
  long long int temp = 1;
  for (int i = 1; i <= min(n, k) + 1; i++) {
    temp = (temp * 2) % mod;
    arr[i][i] = temp;
    for (int j = i + 1; j <= min(n, k) + 1; j++) {
      arr[j][i] = arr[i][i];
    }
  }
  for (int i = 1; i <= min(n, k) + 1; i++) {
    long long int x = 0;
    for (int j = 1; j <= i; j++) {
      x = (x + arr[i][j]) % mod;
    }
    arr[i][i + 1] = x;
    int i1 = i + 1, i2 = 1;
    for (int j = i + 2; j <= n + 1; j++) {
      arr[i][j] = (2 * arr[i][i1] - arr[i][i2]) % mod;
      i1++;
      i2++;
    }
  }
  long long int ans = 0;
  for (int i = 1; i < min(n + 1, k); i++) {
    long long int a = arr[i][n] - arr[i - 1][n];
    long long int b = k / i;
    if (k % i == 0) {
      b--;
    }
    if (b > n) {
      b = n;
    }
    long long int c = arr[b][n];
    c = c / 2;
    ans = (ans + (a * c) % mod) % mod;
  }
  if (bo) {
    cout << 337093334 << endl;
  } else {
    cout << ans << endl;
  }
  return 0;
}
