#include <bits/stdc++.h>
using namespace std;
const long long INF = 2000000000LL;
const long double EPS = 1e-9;
const long long MOD = 998244353;
const int N = 507;
int dp[N][N], vis[N][N];
int cnt[N];
int n;
int maxlen, cs;
int fun(int taken, int streak) {
  if (streak > maxlen) return 0;
  if (taken == n) return 1;
  int &r = dp[taken][streak];
  if (vis[taken][streak] == cs) return r;
  vis[taken][streak] = cs;
  long long temp = (long long)fun(taken + 1, streak + 1) + fun(taken + 1, 1);
  if (temp >= MOD) temp -= MOD;
  return r = temp;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  int k;
  cin >> n >> k;
  memset(vis, 0, sizeof vis);
  cnt[0] = 0;
  int mk = min(k - 1, n);
  for (maxlen = 1, cs = 1; maxlen <= mk; ++maxlen, ++cs)
    cnt[maxlen] = fun(1, 1);
  long long res = 0;
  for (int i = 1; i <= mk; ++i) {
    int j = min(n, (k - 1) / i);
    long long fork = cnt[i] - cnt[i - 1];
    fork *= 2;
    fork %= MOD;
    if (fork < MOD) fork += MOD;
    res += (fork * cnt[j]) % MOD;
    if (res >= MOD) res -= MOD;
  }
  cout << res << "\n";
  return 0;
}
