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;
#define LL long long
#define mp make_pair
#define pb push_back
#define pii pair<int,int>
#define x first
#define y second
#define N 131072
#define pi acos(-1)
int mod=998244353;
LL fra[10005];
LL inv[10005];
LL f_pow(LL a,LL b){
	LL res=1,temp=a;
	while(b){
		if(b&1)res=res*temp%mod;
		temp=temp*temp%mod;
		b>>=1;
	}
	return res;
}
void build(){
	fra[0]=1;
	for(int i = 1;i<10005;i++){
		fra[i]=fra[i-1]*i%mod;
	}
	inv[10004]=f_pow(fra[10004],mod-2);
	for(int i = 10003;i>=0;i--){
		inv[i]=inv[i+1]*(i+1)%mod;
	}
}
LL C(LL a,LL b){
	return fra[a]*inv[b]%mod*inv[a-b]%mod;
}
int main(){
	build();
	int n,x;
	scanf("%d %d",&n,&x);
	int len[3005];
	fill(len,len+n+1,0);
	len[0]=1;
	for(int i = 1;i<=n;i++){
		for(int j = 0;j<x;j++){
			int two=j-i,one=i-two;
			if(one<0||two<0)
			continue;
			//printf("%d %d\n",two,one);
			len[i]+=C(two+one,one);
			len[i]%=mod;
		}
		if(x&1){
			if(i*2>x)
				len[i]++;
		}
	//	printf("%d\n",len[i]);
		if(i>=2){
			for(int k = 2;k<=i;k+=2){
				int templ=i-k;
				int j = x-1-k;
				int two= j-templ,one=templ-two;
				if(one<=0||two<0){
					//printf("%d\n",len[i]);
					//continue;
				}
				else{
					len[i]+=C(two+one,one);
					len[i]%=mod;
				}
			}
		}
	//	printf("%d\n",len[i]);
	}
	LL ans=0;
	for(int i = 0;i<=n;i++){
		ans+=len[i]*C(n,i)%mod;
	//	printf("%d %d\n",len[i],C(n,i));
		ans%=mod;
	}
	printf("%lld\n",ans);
}