Find the number, modulo 998244353, of sequences of length N consisting of 0, 1 and 2 such that none of their contiguous subsequences totals to X.

Constraints

* 1 \leq N \leq 3000
* 1 \leq X \leq 2N
* N and X are integers.

Input

Input is given from Standard Input in the following format:


N X


Output

Print the number, modulo 998244353, of sequences that satisfy the condition.

Examples

Input

3 3


Output

14


Input

8 6


Output

1179


Input

10 1


Output

1024


Input

9 13


Output

18402


Input

314 159


Output

459765451
#include <bits/stdc++.h>
using namespace std;
const int N=3e3+5;
const int MD=998244353;
int fac[N],inv[N];
int f[N][N<<1];
void init() {
	fac[0]=inv[0]=fac[1]=inv[1]=1;
	for(int i=2;i<N;i++) fac[i]=1LL*fac[i-1]*i%MD,inv[i]=1LL*(MD-MD/i)*inv[MD%i]%MD;
	for(int i=2;i<N;i++) inv[i]=1LL*inv[i]*inv[i-1]%MD;
}
int C(int n,int m) {return 1LL*fac[n]*inv[m]%MD*inv[n-m]%MD;}
int add(int &x,int y) {
	x+=y;
	if(x>=MD) x-=MD;
}
int main() {
	init();
	int n,x;
	scanf("%d%d",&n,&x);
	f[0][0]=1;
	for(int i=1;i<=n;i++) {
		for(int j=1;j<=x;j++) {
			add(f[i][j],f[i-1][j-1]);
			if(j>1) add(f[i][j],f[i-1][j-2]);
		}
	}
	int ans=0;
	for(int i=0;i<=n;i++) {
		int s=0;
		for(int j=0;j<x-1;j++) add(s,f[i][j]);
		for(int j=0;j<=i;j++) {
			if(i-j<=j&&x-1-2*(i-j)>=0) add(s,f[j-(i-j)][x-1-2*(i-j)]);
			else if(i-j>j&&j*2==x-1) add(s,1);
		}
		add(ans,1LL*C(n,i)*s%MD);
	}
	printf("%d\n",ans);
	return 0;
}