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>
#define IL inline
#define _ 6005
#define ll long long
using namespace std ;

IL int gi(){
	int data=0,fu=1; char ch=0;
	while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar(); if(ch=='-')fu=-1,ch=getchar();
	while('0'<=ch&&ch<='9')data=(data<<1)+(data<<3)+(ch^48),ch=getchar();return data*fu;
}

int n,X,Fac[_],IFac[_],Ans;
#define mod 998244353
IL int Pow(int ts,int js){int al=1;while(js){if(js&1)al=1ll*al*ts%mod;ts=1ll*ts*ts%mod;js>>=1;}return al; }

IL int Comb(int N,int M){if(M>N||N<0||M<0)return 0; return 1ll*Fac[N]*IFac[M]%mod*IFac[N-M]%mod; }
IL int S(int a,int b){if(a<b||a<0||b<0)return 0; return Comb(b,a-b); }
IL int Calc(int K){
	int ret=0;
	for(int i=0;i<=X-1;++i)ret=(ret+S(i,K))%mod;
	bool flag=false;
	for(int i=1;i<=(K-1)/2;++i){
		int s=X-1-2*i,l=K-2*i; if(l*2==s)continue; 
		ret=(ret+S(s,l))%mod;
	}
	return ret+((X&1)&&(2*K>X));
}
int main(){
	n=gi(); X=gi();
	Fac[0]=1; for(int i=1;i<=n;++i)Fac[i]=1ll*Fac[i-1]*i%mod;
	IFac[n]=Pow(Fac[n],mod-2);
	for(int i=n;i>=1;--i)IFac[i-1]=1ll*i*IFac[i]%mod; 
	for(int K=0;K<=n;++K){
		//cout<<K<<": "<<Calc(K)<<" ; "<<Comb(n,K)<<endl;
		Ans=(Ans+1ll*Comb(n,K)*Calc(K)%mod)%mod;
	}
	printf("%d\n",Ans%mod);
	return 0;
}
