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 maxn=100100,mod=998244353;
inline void Add(int &a,int b){a=a+b>=mod?a+b-mod:a+b;}
inline int ksm(int a,int b)
{
	int res=1;
	for(;b;b>>=1,a=1ll*a*a%mod) if(b&1) res=1ll*res*a%mod;
	return res;
}
int fac[maxn],invfac[maxn];
inline int C(int n,int m){return (n<0||n<m)?0:(1ll*fac[n]*invfac[m]%mod*invfac[n-m]%mod);}
int n,x,ans=0;
int main()
{
	for(int i=fac[0]=1;i<maxn;i++) fac[i]=1ll*fac[i-1]*i%mod;
	invfac[maxn-1]=ksm(fac[maxn-1],mod-2);
	for(int i=maxn-2;i>=0;i--) invfac[i]=1ll*invfac[i+1]*(i+1)%mod;
	cin>>n>>x;
	for(int cnt0=0;cnt0<=n;cnt0++)
	{
		int sum=0,N=n-cnt0;
		if(2*N<x||x%2==1) sum=1;
		for(int i=N;i<2*N;i++)
		{
			if(i<x) {Add(sum,C(N,i-N));continue;}
			if((i-x)%2==0) continue;int cnt=(i-x+1)/2;
			if(2*cnt>=N) continue;int va=N-2*cnt,vb=i-4*cnt;
			if(vb<va||vb>2*va) continue;Add(sum,C(va,vb-va));
		}
		Add(ans,1ll*sum*C(n,cnt0)%mod);
	}
	printf("%d\n",ans);
	return 0;
}