#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 5;
const int block = 1410;
const int logN = 18 + 1;
const long long MOD = 998244353;
const long long INF = 1e18;
int n, c, dp[N][N], ans = 0;
int div2(int x) {
  if (x & 1) return (x + MOD) / 2 % MOD;
  return x / 2;
}
long long DP(int id, int max_len) {
  if (id < 0 || max_len <= 0) return 0;
  if (id == 0) return 2;
  if (dp[id][max_len] != -1) return dp[id][max_len];
  int res = 0;
  for (int i = 1; i <= max_len; i++) {
    int add = DP(id - i, max_len);
    res = (res + add) % MOD;
  }
  return dp[id][max_len] = res;
}
long long getDP(int len) {
  if (!len) return 0;
  return (DP(n, len) - DP(n, len - 1) + MOD) % MOD;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie();
  memset(dp, -1, sizeof(dp));
  cin >> n >> c;
  c--;
  for (int i = 1; i <= n; i++)
    ans = (1ll * ans + getDP(i) * 1ll * div2(DP(n, c / i))) % MOD;
  cout << ans << endl;
  return 0;
}
