#include <bits/stdc++.h>
template <class T>
inline void minz(T& a, T b) {
  if (a > b) a = b;
}
template <class T>
inline void maxz(T& a, T b) {
  if (a < b) a = b;
}
using namespace std;
const int N = 505, M = 998244353;
int n, k;
long long dp[N][N], s[N][N];
void inc(long long& a, long long b) {
  if ((a += b) >= M) a -= M;
}
int main() {
  int i, j;
  long long sum;
  scanf("%d%d", &n, &k);
  for (j = 1; j <= n; j++) {
    sum = 1;
    dp[j][0] = 1;
    s[j][0] = 0;
    for (i = 1; i < j; i++) {
      dp[j][i] = 0;
      s[j][i] = s[j - 1][i];
    }
    for (; i <= n; i++) {
      dp[j][i] = sum;
      if (i >= j) inc(dp[j][i], s[j - 1][i - j]);
      s[j][i] = (s[j - 1][i] + dp[j][i]) % M;
      sum += dp[j][i] - (i >= j ? dp[j][i - j] : 0);
      if (sum < 0)
        sum += M;
      else
        sum %= M;
    }
  }
  long long ans = 0;
  for (i = 1; i <= n; i++)
    ans = (ans + dp[i][n] * s[min(n, (k - 1) / i)][n]) % M;
  printf("%lld\n", ans * 2 % M);
}
