#include <bits/stdc++.h>
using namespace std;
const int maxn = 505;
const int inf = INT_MAX;
const long long inff = 1e18;
const int mod = 998244353;
int num[maxn];
int dp[maxn][maxn];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, kk;
  cin >> n >> kk;
  kk--;
  num[0] = 0;
  for (int i = 1; i <= n; i++) {
    memset(dp, 0, sizeof(dp));
    dp[1][1] = 2;
    for (int j = 1; j < n; j++) {
      for (int k = 1; k <= i; k++) {
        dp[j + 1][k + 1] = (dp[j + 1][k + 1] + dp[j][k]) % mod;
        dp[j + 1][1] = (dp[j + 1][1] + dp[j][k]) % mod;
      }
    }
    for (int j = 1; j <= i; j++) num[i] = (num[i] + dp[n][j]) % mod;
  }
  for (int i = n; i >= 1; i--) num[i] = (num[i] + mod - num[i - 1]) % mod;
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    memset(dp, 0, sizeof(dp));
    int ii = min(n, kk / i);
    if (ii == 0) break;
    dp[1][1] = num[i];
    for (int j = 1; j < n; j++) {
      for (int k = 1; k <= ii; k++) {
        dp[j + 1][k + 1] = (dp[j + 1][k + 1] + dp[j][k]) % mod;
        dp[j + 1][1] = (dp[j + 1][1] + dp[j][k]) % mod;
      }
    }
    for (int j = 1; j <= ii; j++) ans = (ans + dp[n][j]) % mod;
  }
  cout << ans << endl;
}
