#include <bits/stdc++.h>
using namespace std;
const int maxn = 5e2 + 10;
int N, K;
long long dp[2][maxn][maxn], cnt[maxn];
long long mod = 998244353;
int main() {
  cin >> N >> K;
  dp[0][0][0] = 1;
  for (int i = 0; i < N; i++) {
    int u = i & 1;
    int v = u ^ 1;
    memset(dp[v], 0, sizeof(dp[v]));
    for (int j = 0; j <= N; j++) {
      for (int k = 0; k <= N; k++) {
        dp[v][j + 1][max(j + 1, k)] =
            (dp[v][j + 1][max(j + 1, k)] + dp[u][j][k]) % mod;
        dp[v][1][max(1, k)] = (dp[v][1][max(1, k)] + dp[u][j][k]) % mod;
      }
    }
  }
  for (int i = 0; i <= N; i++) {
    for (int j = 0; j <= N; j++) {
      cnt[i] = (cnt[i] + dp[N & 1][j][i]) % mod;
    }
  }
  long long ans = 0;
  for (int i = 1; i <= N; i++) {
    for (int j = 1; j * i < K; j++) {
      ans = (ans + cnt[i] * cnt[j] % mod) % mod;
    }
  }
  cout << ans / 2 << endl;
  return 0;
}
