#include <stdio.h>
#include <string.h>
#include <algorithm>
#define rep(i,st,ed) for (register int i=st,_=ed;i<=_;++i)
#define fill(x,t) memset(x,t,sizeof(x))

const int MOD=998244353;
const int N=505;

int f[2][N][N],g[N][N];

void upd(int &x,int v) {
	x=x+v;
	(x>=MOD)?(x-=MOD):0;
}

int main(void) {
	int n,m; scanf("%d%d",&n,&m);
	f[1][1][1]=2;
	rep(i,1,n) {
		int x=i&1;
		rep(j,0,i+1) rep(k,0,std:: min(i,j)+1) f[!x][j][k]=0;
		rep(j,1,i) {
			rep(k,1,std:: min(i,j)) {
				upd(f[!x][std:: max(j,k+1)][k+1],f[x][j][k]);
				upd(f[!x][j][1],f[x][j][k]);
				upd(g[i][j],f[x][j][k]);
			}
		}
	}
	int ans=0;
	rep(i,1,m) rep(j,1,m) {
		if (i*j<m) upd(ans,1LL*g[n][i]*g[n][j]%MOD);
		else break;
	}
	ans=499122177LL*ans%MOD;
	printf("%d\n", ans);
	return 0;
}