#include <bits/stdc++.h>
using namespace std;
double pi = acos(-1.0);
const double eps = 1e-12;
const int inf = 0x3f3f3f3f;
const int maxn = 2e6 + 20;
const int maxm = 5e3 + 20;
int in(int &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return -1;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
long long dp[2][555][555];
long long mod = 998244353;
void add(long long &a, long long b) {
  a += b;
  if (a >= mod) a -= mod;
}
long long cnt[maxn];
long long pre[maxn];
int main() {
  int n, K;
  scanf("%d%d", &n, &K);
  dp[0][0][0] = 1;
  for (int ii = 1; ii <= n; ++ii) {
    int i = ii & 1;
    int lt = i ^ 1;
    memset(dp[i], 0, sizeof dp[i]);
    for (int k = 0; k <= n; ++k) {
      for (int j = 0; j <= k; ++j) {
        add(dp[i][j + 1][max(k, j + 1)], dp[lt][j][k]);
        add(dp[i][1][max(k, 1)], dp[lt][j][k]);
      }
    }
  }
  for (int i = 1; i <= n; ++i) {
    int p = n & 1;
    for (int j = 1; j <= n; ++j) add(cnt[i], dp[p][j][i]);
  }
  for (int i = 1; i <= n; ++i) {
    pre[i] = pre[i - 1];
    add(pre[i], cnt[i]);
  }
  long long ans = 0;
  for (int i = 1; i <= n; ++i) {
    int can = (K - 1) / i;
    can = min(can, n);
    long long ad = cnt[i] * pre[can] % mod;
    add(ans, ad);
  }
  ans = ans * ((mod + 1) >> 1) % mod;
  printf("%lld\n", ans);
  return 0;
}
