#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:667177216")
using namespace std;
const long long MOD = 998244353;
const long long MAXN = 200000 + 100;
int n, k;
int D[501][501][2][2];
int rec(int need, int pos, int last_len, int last_color, bool was) {
  if (pos == n) return (int)was;
  if (D[pos][last_len][last_color][was] != -1)
    return D[pos][last_len][last_color][was];
  long long result = 0;
  result += rec(need, pos + 1, 1, last_color ^ 1, was);
  result %= MOD;
  if (last_len != need) {
    result += rec(need, pos + 1, last_len + 1, last_color,
                  was || (last_len + 1 == need));
    result %= MOD;
  }
  return D[pos][last_len][last_color][was] = result;
}
int D2[501][501];
int rec2(int max_len, int pos, int last_count) {
  if (pos == n) return 1;
  if (D2[pos][last_count] != -1) return D2[pos][last_count];
  long long result = 0;
  if (last_count + 1 <= max_len) {
    result += rec2(max_len, pos + 1, last_count + 1);
    result %= MOD;
  }
  result += rec2(max_len, pos + 1, 1);
  result %= MOD;
  return D2[pos][last_count] = result;
}
int main() {
  ios::sync_with_stdio(false);
  cin >> n >> k;
  long long ans = 0;
  for (int i = 1; i <= min(k - 1, n); ++i) {
    memset(D, -1, sizeof(D));
    long long tmp = rec(i, 1, 1, 0, i == 1);
    tmp %= MOD;
    int max_len = k / i;
    memset(D2, -1, sizeof(D2));
    ans += ((long long)rec2(max_len, 1, 1) * tmp);
    ans %= MOD;
  }
  ans *= 2;
  ans %= MOD;
  cout << ans;
  return 0;
}
