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 ll long long
#define pb push_back
#define mk make_pair
#define rint register int
#define debug(x) cerr<<#x<<"="<<x<<"\n"
using namespace std;
const int mod = 998244353;
inline int read(){int w=1,s=0;char ch=getchar();while(!isdigit(ch)){if(ch=='-')w=-1;ch=getchar();}while(isdigit(ch)){s=s*10+ch-'0';ch=getchar();}return w*s;}
int n,X,fac[101100],Ifac[101011];
inline ll ksm (ll x,ll y){ll res=1;while(y){if(y&1) res=res*x%mod;x=x*x%mod;y>>=1;}return res;}
inline void Init(){
	Ifac[0]=fac[0]=1;
	for(rint i=1;i<=10000;++i) fac[i]=1ll*fac[i-1]*i%mod;
	Ifac[10000]=ksm(fac[10000],mod-2);
	for(rint i=9999;i;--i) Ifac[i]=1ll*(i+1)*Ifac[i+1]%mod;
}
inline int C(int a,int b){/*debug(a);debug(b);*/if(a<b) return 0;return 1ll*fac[a]*Ifac[b]%mod*Ifac[a-b]%mod;}
inline int pls(int a,int b){a+=b;return a>=mod?a-mod:a;}
inline int get(int len){
	int Ans=0;
	if(2*len<X||(X%2==1)) Ans=1;
	for(rint i=len;i<=2*len-1;++i){
		if(i<X) Ans=pls(Ans,C(len,i-len));
		else {
			if((i-X)%2==0) continue;
//			debug(i);
			int o=(i-X+1)/2;
			if(2*o>=len) continue;
			int p=len-2*o,q=i-4*o;
			if(q>=p)Ans=pls(Ans,C(p,q-p));
		}
	}
	return Ans;
}
int main()
{	
	n=read(),X=read();
	Init();
	ll Ans=0;
	for(rint i=0;i<=n;++i){
		Ans=pls(Ans,1ll*C(n,i)*get(i)%mod);
	}cout<<Ans;
	return 0;
}	