#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const long long N = 505;
long long dp[N][N][2];
long long n, k;
long long rec(long long ind, long long len, long long p, long long max_common) {
  if (ind == n) {
    return 1;
  }
  long long &ans = dp[ind][len][p];
  if (ans >= 0) {
    return ans;
  }
  ans = 0;
  if (len > 0) {
    ans += rec(ind + 1, len - 1, p, max_common);
    ans %= 1000000007;
  }
  ans += rec(ind + 1, max_common - 1, !p, max_common);
  ans %= 1000000007;
  return ans;
}
long long f(long long x) {
  memset(dp, -1, sizeof(dp));
  return rec(1, x - 1, 0, x);
}
long long dpp[N];
long long ar[N];
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  dpp[1] = 1;
  ar[1] = 1;
  dpp[0] = ar[0] = 0;
  for (long long i = 2; i <= n; i++) {
    dpp[i] = f(i);
    ar[i] = dpp[i] - dpp[i - 1];
    ar[i] += 1000000007;
    ar[i] %= 1000000007;
  }
  for (long long i = 1; i <= n; i++) {
    cerr << "i"
         << "=" << i << " "
         << "dpp[i]"
         << "=" << dpp[i] << " "
         << "ar[i]"
         << "=" << ar[i] << "\n";
  }
  long long ans = 0;
  for (long long i = 1; i <= n; i++) {
    long long j = min((k - 1) / i, n);
    ans = (ans + (ar[i] * dpp[j])) % 998244353;
  }
  cout << (ans * 2) % 1000000007 << "\n";
}
