import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class E1027 {
	static int N,K, max1,max2;
	static final int MOD = 998244353;
	static int[][][] memo1;
	static int[][] memo2;
	public static void main(String[] args) {
		FS scan = new FS(System.in);
		N = scan.nextInt();
		K = scan.nextInt();
		
		memo1 = new int[2][N][N+1];
		memo2 = new int[N][N+1];
		long SOL = 0;
		int prevMax2 = -1;
		for(int i=1;i<Math.min(K, N+1);i++){
			max1 = i;
			max2 = (K+i-1)/i - 1;
			max2 = Math.min(max2, N);
			for(int j=0;j<2;j++)
				for(int k=0;k<N;k++)
					Arrays.fill(memo1[j][k], -1);
			if(prevMax2 != max2)
				for(int j=0;j<N;j++)Arrays.fill(memo2[j], -1);
					
			prevMax2 = max2;
			long A = 2*solve1(1,i-1,0);
			long B = solve2(1,max2-1);
			SOL += ((A*B)%MOD);
			SOL %= MOD;
		}
		System.out.println(SOL);
		
	}
	private static int solve1(int idx, int cnt, int flag) {
		if(idx == N) {
			return flag == 1 || cnt == 0? 1 : 0;
		}
		if(memo1[flag][idx][cnt] != -1) return memo1[flag][idx][cnt];
		int sum = 0;
		if(cnt > 0) {
			sum += solve1(idx+1,cnt-1,cnt == 1 || flag == 1? 1 : 0);
			sum %= MOD;
		}
		sum += solve1(idx+1,max1-1,flag==1 || cnt == 0 ? 1 : 0);
		sum %= MOD;
		return memo1[flag][idx][cnt] = sum;
	}
	
	private static int solve2(int idx, int cnt) {
		if(idx == N) return 1;
		if(memo2[idx][cnt] != -1) return memo2[idx][cnt];
		
		int sum = 0;
		if(cnt != 0) {
			sum += solve2(idx+1,cnt-1);
		}
		sum += solve2(idx+1,max2-1);
		sum%= MOD;
		return memo2[idx][cnt] = sum;
	}
	private static class FS {
		BufferedReader br;
		StringTokenizer st;
		public FS(InputStream in) {
			br = new BufferedReader(new InputStreamReader(in));
		}
		String next(){
			while(st==null||!st.hasMoreElements()){
				try{st = new StringTokenizer(br.readLine());}
				catch(IOException e){e.printStackTrace();}
			}
			return st.nextToken();
		}
		int nextInt() {return Integer.parseInt(next());}
		long nextLong() {return Long.parseLong(next());}
		double nextDouble() { return Double.parseDouble(next());}
	}
}
