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 <cstdio>

const int MAXN=3011, MAXX=MAXN<<1;
const int MOD=998244353;

inline int sum(const int &a, const int &b){
	return (a+b>=MOD)?(a+b-MOD):(a+b);
}

inline int mul(const int &a, const int &b){
	return (int)((1LL*a*b)%(long long)(MOD));
}

inline void add(int &a, const int &v){
	a+=v;if(a>=MOD)	a-=MOD;
}

int N, X;

int Ans=0;

int F[MAXN][MAXX];

int C[MAXN][MAXN];

inline int D(const int &a){
	return C[N][a];
}

int main(){
	
	scanf("%d%d", &N, &X);
	
	for(int i=0;i<=N;++i){
		C[i][i]=C[i][0]=1;
		for(int j=1;j<i;++j)
			C[i][j]=sum(C[i-1][j-1], C[i-1][j]);
	}
	
	F[0][0]=1;
	for(int i=0;i<N;++i){
		for(int j=0;j<X;++j){
			add(F[i+1][j+1], F[i][j]);
			add(F[i+1][j+2], F[i][j]);
		}
	}
	
	for(int i=0;i<=N;++i)
		for(int j=0;j<X;++j)
			add(Ans, mul(F[i][j], D(i)));
	
	for(int k=1;(k<<1)<X;++k){
		for(int i=0;i<N;++i){
			if(i+(k<<1)<=N){
				add(Ans, mul(F[i][X-(k<<1)-1], D(i+(k<<1))));
			}
		}
	}
	
	if(X&1){
		for(int k=X;k<=N;++k){
			//printf("%d %d\n", k, D(k));
			add(Ans, D(k));
		}
	}
	
	printf("%d\n", Ans);
	
	return 0;
}