/*

*/
#include <bits/stdc++.h> 
using namespace std;
#define fl(i,a,b) for(int i=a;i<b;i++)
#define ll long long
#define endl '\n'
#define pb push_back
#define ff first
#define ff first
#define ss second
#define mod 998244353  
#define inf 4e18
#define fast ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
#define mx 505
#define int long long
inline int add(int x,int y)
{
    if(x + y >= mod)
        return x + y - mod;
    return x + y;
}
inline int sub(int x,int y)
{
    if(x - y < 0)
        return x - y + mod;
    return x - y;
}
inline int mul(int x,int y)
{
    return 1LL * x * y % mod;
}

int n,k;
int dp[mx][mx][2];
int dp2[mx][mx][2];
int finaldp[mx][mx];
int powr[mx];
main()
{
	fast;
	powr[0] = 1;
	int n,k;
	cin >> n >> k;
	fl(i,1,mx)
	{
		powr[i] = mul(2,powr[i-1]);
	}
	fl(j,1,n+1)
	{
	//	cout << j << endl;
		dp[j][0][0] = dp[j][0][1] = 1;
		fl(i,1,n+1)
		{
			fl(a,1,j + 1)
			{
				if(a >= 0)
				{
					dp[j][i][0] = add(dp[j][i-a][1],dp[j][i][0]);
					dp[j][i][1] = add(dp[j][i-a][0],dp[j][i][1]);
					if(a < j)
					{
						dp2[j][i][0] = add(dp2[j][i-a][1],dp2[j][i][0]);
						dp2[j][i][1] = add(dp2[j][i-a][0],dp2[j][i][1]);
					}
					if(a == j)
					{
						dp2[j][i][0] = add(dp[j][i-a][1],dp2[j][i][0]);
						dp2[j][i][1] = add(dp[j][i-a][0],dp2[j][i][1]);
					}
				}	
			}
		}
	}
	ll ans = 0;
	fl(j,1,n+1)
	{
		int z = (k  - 1)/ j;
		finaldp[j][0] = dp2[j][n][0];
	//	cout << "j = "<<j << endl;
		fl(i,1,n+1)
		{
			fl(a,1,z+1)
			{
				if(i - a >= 0)
				finaldp[j][i] = add(finaldp[j][i],finaldp[j][i-a]);
			}
	//		cout << ' '<<finaldp[j][i] << endl;
		}
		ans = add(ans,finaldp[j][n]);
	}
	ans = mul(ans,2);
	cout << ans;


	
}