#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
const int INF = 2147483647;
const int mod = 1000000007;
const int mod2 = 998244353;
const double eps = 1e-9;
const double pi = acos(-1.0);
inline int rint() {
  int x;
  scanf("%d", &x);
  return x;
}
inline long long rll() {
  long long x;
  scanf("%lld", &x);
  return x;
}
inline long long ri64() {
  long long x;
  scanf("%I64d", &x);
  return x;
}
void rvi(vector<int> &a, int n) {
  for (int i = 0; i < n; i++) {
    a.push_back(rint());
  }
}
void rvll(vector<long long> &a, int n) {
  for (int i = 0; i < n; i++) {
    a.push_back(rll());
  }
}
void showvi(vector<int> &a) {
  for (int i = 0; i < a.size(); i++) {
    printf("%d%c", a[i], (i + 1 == a.size() ? '\n' : ' '));
  }
}
void showvll(vector<long long> &a) {
  for (int i = 0; i < a.size(); i++) {
    printf("%lld%c", a[i], (i + 1 == a.size() ? '\n' : ' '));
  }
}
void showviln(vector<int> &a) {
  for (int i = 0; i < a.size(); i++) {
    printf("%d%c", a[i], '\n');
  }
}
void showvllln(vector<long long> &a) {
  for (int i = 0; i < a.size(); i++) {
    printf("%lld%c", a[i], '\n');
  }
}
void showi(int x) { printf("%d", x); }
int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }
long long s[505][505];
long long sum[505];
long long num[505];
long long n, k;
void init(int p) {
  memset(s, 0, sizeof(s));
  s[0][1] = 1;
  for (int i = 1; i <= n; i++) sum[i] = 1;
  for (int i = 1; i <= n; i++) {
    s[i][1] = sum[p];
    for (int j = 2; j <= i; j++) s[i][j] = s[i - 1][j - 1];
    sum[0] = 0;
    for (int j = 1; j <= n; j++) sum[j] = (sum[j - 1] + s[i][j]) % mod2;
  }
  for (int i = 1; i <= p; i++) num[p] = (num[p] + s[n][i]) % mod2;
  num[p] = num[p] * 2 % mod2;
  for (int i = 1; i < p; i++) num[p] = (num[p] - num[i] + mod2) % mod2;
}
int main() {
  cin >> n >> k;
  if (k == 1) {
    cout << 0;
    return 0;
  }
  for (int i = 1; i <= n; i++) init(i);
  long long ans = 0;
  sum[0] = 0;
  for (int i = 1; i <= n; i++)
    sum[i] = (sum[i - 1] + num[i] * 499122177 % mod2) % mod2;
  for (int i = 1; i <= min(n, k); i++) {
    int wd = min((k - 1) / i, n);
    ans = (ans + sum[wd] * num[i] % mod2) % mod2;
  }
  cout << ans % mod2;
  return 0;
}
