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 pa pair<int,int>
const int Maxn=3010;
const int inf=2147483647;
const int mod=998244353;
int read()
{
    int x=0,f=1;char ch=getchar();
    while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
    while(ch>='0'&&ch<='9')x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
    return x*f;
}
void upd(int&x,int y){x+=y;if(x>=mod)x-=mod;}
int n,k;
int f[Maxn][Maxn<<1],C[Maxn][Maxn];
int main()
{
	n=read(),k=read();
	C[0][0]=1;
	for(int i=1;i<=n;i++)
	{
		C[i][0]=1;
		for(int j=1;j<=i;j++)
		C[i][j]=(C[i-1][j-1]+C[i-1][j])%mod;
	}
//	pw[0]=1;for(int i=1;i<=n;i++)pw[i]=pw[i-1]*2%mod;
	f[0][0]=1;
	for(int i=0;i<n;i++)
	for(int j=0;j<=min(i<<1,k-1);j++)
	for(int l=0;l<3;l++)
	upd(f[i+1][j+l],f[i][j]);
	int ans=0;
	for(int i=0;i<k;i++)upd(ans,f[n][i]);
	if(k&1)
	{
		for(int i=n;i;i--)
		{
			if(2*i<=k)break;
			upd(ans,C[n][i]);
		}
	}
//	printf("%d\n",ans);
	for(int i=0;i<=n;i++)
	{
		if((n-i)*2<k)break;
		int t=0;
		for(int j=1;k+j<=n*2;j+=2)//S-k
		{
			int S=k+j,c=(j+1)/2;
			int t1=(n-i-c*2),t2=S-c*4-t1;
			if(t1<=0||t2<0||t1==t2)continue;
//			printf("%d %d %d\n",t1,t2,C[t1][t2]);
			upd(t,C[t1][t2]);
		}
//		printf("%d %d\n",i,t);
		upd(ans,(LL)t*C[n][i]%mod);
	}
	printf("%d",ans);
}