#include <bits/stdc++.h>
using namespace std;
using VS = vector<string>;
using LL = long long;
using VI = vector<int>;
using VVI = vector<VI>;
using PII = pair<int, int>;
using PLL = pair<LL, LL>;
using VL = vector<LL>;
using VVL = vector<VL>;
const int INF = 1e9;
const LL LINF = 1e16;
const LL MOD = 998244353;
const double PI = acos(-1.0);
int DX[8] = {0, 0, 1, -1, 1, 1, -1, -1};
int DY[8] = {1, -1, 0, 0, 1, -1, 1, -1};
LL dp[502][502];
inline LL add(LL a, LL b) {
  a += b;
  if (a >= MOD) a -= MOD;
  return a;
}
inline LL mul(LL a, LL b) {
  a *= b;
  if (a >= MOD) a %= MOD;
  return a;
}
int main() {
  dp[0][0] = 1;
  for (int(i) = (0); (i) < (501); (i)++)
    for (int(j) = (0); (j) < (501); (j)++)
      for (int(k) = (1); (k) < (502 - i); (k)++) {
        dp[i + k][max(j, k)] = add(dp[i + k][max(j, k)], dp[i][j]);
      }
  int N, K;
  scanf("%d%d", &N, &K);
  LL ans = 0;
  for (int(i) = (1); (i) < (N + 1); (i)++) {
    for (int(j) = (1); (j) < (N + 1); (j)++) {
      if (i * j < K) ans = add(ans, mul(dp[N][i], dp[N][j]));
    }
  }
  cout << mul(ans, 2) << endl;
  return 0;
}
