#include <bits/stdc++.h>
using namespace std;
void gggg(string a) {}
void gggg(string a, long long b) {}
void gggg(string a, long long b, long long c) {}
long long n, k, af[510][510], aff[510][510], gio[510], di, po[510 * 510];
long long poww(long long a, long long b) {
  gggg("poww(%lld,%lld)\n", a, b);
  if (b < (510 * 510) && b >= 0) {
    if (po[b] != 0) return po[b];
  }
  if (b == 0) return 1;
  if (b == 1) return a;
  long long g = poww(a, b / 2);
  g *= g;
  g %= 998244353;
  if (b % 2 == 1) {
    g *= a;
    g %= 998244353;
  }
  if (b < (510 * 510) && b >= 0) {
    po[b] = g;
  }
  g %= 998244353;
  return g;
}
void sett(void) {
  for (long long i = 0; i < 510; i++) {
    for (long long j = 0; j < 510; j++) {
      af[i][j] = aff[i][j] = -1;
    }
  }
  for (long long i = 1; i <= n; i++) {
    long long t = (k / i);
    if (k % i == 0) {
      if (t - 1 > n)
        gio[i] = n;
      else
        gio[i] = t - 1;
    } else if (t > n)
      gio[i] = n;
    else if (t < 1)
      gio[i] = -1;
    else
      gio[i] = t;
  }
  for (long long i = 1; i <= n; i++) {
    gggg("gio[%lld]=%lld\n", i, gio[i]);
  }
  di = poww(2, 998244353 - 2);
}
void noo(long long, long long, long long, long long);
long long div2(long long a) {
  a *= di;
  a %= 998244353;
  return a;
}
long long ff(long long, long long);
long long f(long long, long long);
void line(void) { gggg("----------------\n"); }
long long query(long long t, long long a, long long b) {
  if (t == 1)
    return f(a, b);
  else if (t == 2)
    return ff(a, b);
  gggg("FUCK YOU\n");
  return 0;
}
signed main() {
  ios::sync_with_stdio();
  cin.tie(0);
  cout.tie(0);
  scanf("%lld%lld", &n, &k);
  sett();
  long long ans = 0, temp = 0;
  for (long long i = 1; i <= n; i++) {
    temp = ((f(n, i) * ff(n, gio[i])));
    temp %= 998244353;
    temp = div2(temp);
    temp %= 998244353;
    ans += temp;
    ans %= 998244353;
  }
  line();
  for (long long i = 1; i <= n; i++) {
    f(n, i);
    ff(n, gio[i]);
  }
  line();
  for (long long i = 1; i <= n; i++) {
  }
  line();
  if (ans < 0) ans += 998244353;
  cout << ans << '\n';
}
long long ff(long long a, long long b) {
  if (a < 0 || b < 0 || a >= 510 || b >= 510) return 0;
  gggg("ff(%lld,%lld)\n", a, b);
  if (aff[a][b] != (-1)) return aff[a][b];
  if (a <= b) return aff[a][b] = poww(2, a);
  if (a == 0) return aff[a][b] = 1;
  if (b == 1) return aff[a][b] = f(a, b);
  long long re = ff(a, b - 1);
  re += f(a, b);
  re %= 998244353;
  return aff[a][b] = re;
}
long long f(long long a, long long b) {
  if (a < 0 || b < 0 || a >= 510 || b >= 510) return 0;
  if (a < b) return af[a][b] = 0;
  if (a == b) return af[a][b] = 2;
  if (b == 1) return af[a][b] = 2;
  if (a == 0) return af[a][b] = 1;
  if (b == 0) return af[a][b] = 0;
  long long re = 0;
  for (long long i = 0; i <= (a - b); i++) {
    gggg("YEEEE %lld,%lld\n", ff(i, b), ff((a - b) - i, b));
    long long g1 = ff(i, b);
    long long g2 = ff((a - b) - i, b);
    if (g1 != 1) g1 = div2(g1);
    if (g2 != 1) g2 = div2(g2);
    g1 *= g2;
    g1 %= 998244353;
    re += g1;
    re %= 998244353;
  }
  re *= 2;
  re %= 998244353;
  return af[a][b] = re;
}
