#include <bits/stdc++.h>
using namespace std;
using LD = long double;
const int N = 5e2 + 7, inf = 1e9 + 7, MOD = 998244353;
const long long INF = 2e18 + 7;
const int M = 1 << 17;
int dp[2][N][N];
int cnt[N];
void checkMod(int& a) {
  if (a >= MOD) a -= MOD;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n, k;
  cin >> n >> k;
  dp[0][0][0] = 1;
  int curr, nex;
  for (int i = 0; i < n; ++i) {
    curr = i % 2;
    nex = (i + 1) % 2;
    for (int j = 0; j < min(k, n + 1); ++j) {
      for (int l = 0; l <= j; ++l) {
        dp[nex][j][l] = 0;
      }
    }
    for (int j = 0; j < min(k, i + 1); ++j) {
      for (int l = 0; l <= j; ++l) {
        dp[nex][max(j, l + 1)][l + 1] += dp[curr][j][l];
        dp[nex][j][1] += dp[curr][j][l];
        checkMod(dp[nex][max(j, l + 1)][l + 1]);
        checkMod(dp[nex][j][1]);
      }
    }
  }
  for (int i = 0; i < min(k, n + 1); ++i) {
    for (int j = 0; j <= i; ++j) {
      cnt[i] += dp[nex][i][j];
      checkMod(cnt[i]);
    }
  }
  int res = 0;
  for (int i = 1; i < min(k, n + 1); ++i) {
    for (int j = 1; j * 1ll * i < k && j < min(k, n + 1); ++j) {
      res = (res + cnt[i] * 1ll * cnt[j]) % MOD;
    }
  }
  cout << (res * 2) % MOD;
  return 0;
}
