#include <bits/stdc++.h>
using namespace std;
const long long mod = 998244353;
int main() {
  int n, k;
  long long ans = 0;
  cin >> n >> k;
  for (int max_len = 1; max_len <= min(n, k - 1); max_len++) {
    vector<long long> dp(max_len + 1, 0), t_dp(max_len + 1, 0);
    dp[1] = 2;
    t_dp[1] = 0;
    long long A = 0;
    if (max_len == 1) {
      A = 2;
    } else {
      for (int i = 2; i <= n; i++) {
        long long huh = 0, t_huh = t_dp[max_len];
        t_dp[max_len] = dp[max_len - 1] + t_dp[max_len - 1];
        if (t_dp[max_len] >= mod) t_dp[max_len] -= mod;
        for (int j = max_len - 1; j > 1; j--) {
          huh = (dp[j] + huh);
          if (huh >= mod) huh -= mod;
          t_huh = (t_dp[j] + t_huh);
          if (t_huh >= mod) t_huh -= mod;
          t_dp[j] = t_dp[j - 1];
          dp[j] = dp[j - 1];
        }
        dp[1] = (dp[1] + huh);
        if (dp[1] >= mod) dp[1] -= mod;
        t_dp[1] = (t_dp[1] + t_huh);
        if (t_dp[1] >= mod) t_dp[1] -= mod;
      }
      for (int j = 1; j <= max_len; j++) {
        A = (t_dp[j] + A);
        if (A >= mod) A -= mod;
      }
    }
    int LEN = (k - 1) / max_len;
    vector<long long> DP(LEN + 1);
    DP[1] = A;
    for (int i = 2; i <= n; i++) {
      long long huh = 0;
      for (int j = LEN; j > 1; j--) {
        huh = (huh + DP[j]);
        if (huh >= mod) huh -= mod;
        DP[j] = DP[j - 1];
      }
      DP[1] = (DP[1] + huh);
      if (DP[1] >= mod) DP[1] -= mod;
    }
    for (int j = 1; j <= LEN; j++) {
      ans = (ans + DP[j]);
      if (ans >= mod) ans -= mod;
    }
  }
  cout << ans;
}
