#include <bits/stdc++.h>
using namespace std;
long long int mod = 998244353;
long long int n, k;
long long int exp(long long int x, long long int n, long long int p) {
  if (n == 0) {
    return 1;
  } else if (n == 1) {
    return x % p;
  } else {
    if (n % 2 == 0) {
      return (exp((x * x) % p, n / 2, p));
    } else {
      return (x * exp((x * x) % p, n / 2, p)) % p;
    }
  }
}
long long int modInverse(long long int h) { return exp(h, mod - 2, mod); }
long long int solve() {
  long long int r = modInverse(2);
  cin >> n >> k;
  long long int cnt[501];
  cnt[1] = 2;
  for (long long int j = 2; j <= 500; j++) {
    long long int dp[501][501][2] = {0};
    dp[1][1][0] = 1;
    dp[1][1][1] = 1;
    for (long long int i = 2; i <= n; i++) {
      for (long long int q = 1; q <= j; q++) {
        dp[i][1][0] += dp[i - 1][q][1];
        dp[i][1][0] %= mod;
        dp[i][1][1] += dp[i - 1][q][0];
        dp[i][1][1] %= mod;
      }
      for (long long int len = 2; len <= j; len++) {
        dp[i][len][1] += dp[i - 1][len - 1][1];
        dp[i][len][1] %= mod;
        dp[i][len][0] += dp[i - 1][len - 1][0];
        dp[i][len][0] %= mod;
      }
    }
    long long int c = 0;
    for (long long int len = 1; len <= j; len++) {
      c += dp[n][len][1];
      c %= mod;
      c += dp[n][len][0];
      c %= mod;
    }
    long long int d = 0;
    for (long long int i = 1; i < j; i++) {
      d += cnt[i];
      d %= mod;
    }
    cnt[j] = (c - d + mod) % mod;
  }
  long long int ans = 0;
  for (long long int MAX = 1; MAX <= n; MAX++) {
    long long int d;
    if (k % MAX == 0) {
      d = k / MAX - 1;
    } else {
      d = k / MAX;
    }
    long long int dp[501][501][2] = {0};
    dp[1][1][0] = 1;
    dp[1][1][1] = 1;
    for (long long int i = 2; i <= n; i++) {
      for (long long int q = 1; q <= d; q++) {
        dp[i][1][0] += dp[i - 1][q][1];
        dp[i][1][0] %= mod;
        dp[i][1][1] += dp[i - 1][q][0];
        dp[i][1][1] %= mod;
      }
      for (long long int len = 2; len <= d; len++) {
        dp[i][len][1] += dp[i - 1][len - 1][1];
        dp[i][len][1] %= mod;
        dp[i][len][0] += dp[i - 1][len - 1][0];
        dp[i][len][0] %= mod;
      }
    }
    long long int c = 0;
    for (long long int len = 1; len <= d; len++) {
      c += dp[n][len][1];
      c %= mod;
      c += dp[n][len][0];
      c %= mod;
    }
    ans += (((cnt[MAX] * c) % mod) * r) % mod;
    ans %= mod;
  }
  cout << ans << "\n";
  return 0;
}
signed main() {
  ios::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int t;
  t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
