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 N 3010
#define P 998244353
char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||c>'9')) c=getchar();return c;}
int gcd(int n,int m){return m==0?n:gcd(m,n%m);}
int read()
{
	int x=0,f=1;char c=getchar();
	while (c<'0'||c>'9') {if (c=='-') f=-1;c=getchar();}
	while (c>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48),c=getchar();
	return x*f;
}
int n,m,C[N<<1][N<<1],ans;
void inc(int &x,int y){x+=y;if (x>=P) x-=P;}
signed main()
{
	n=read(),m=read();
	C[0][0]=1;
	for (int i=1;i<=max(n,m);i++)
	{
		C[i][0]=1;
		for (int j=1;j<=i;j++)
		C[i][j]=(C[i-1][j-1]+C[i-1][j])%P;
	}
	for (int i=0;i<=n;i++)
	{
		int s=0;
		for (int j=0;j<=m-1-i;j++) inc(s,C[i][j]);
		for (int j=1;j<=i;j++) //j是第一个前缀和>m的位置 j~i均为2 1~i-j+1均为2 
		if (j*2>m&&(i-j+1<j?(i-j+1)*2+(j-(i-j+1)+1):j*2)<=m+1)
			if (i-j+1<j) inc(s,C[j-(i-j+1)-1][m+1-((i-j+1)*2+(j-(i-j+1)+1))]);
			else if (j*2==m+1) inc(s,1);
		inc(ans,1ll*s*C[n][n-i]%P);
	}
	cout<<ans;
	return 0;
	//NOTICE LONG LONG!!!!!
}
//先把0去掉 则要考虑求长度为0~n的满足条件的序列数量
//找到第一个前缀和>x的位置 然后若当前不是后缀 下一位必须是2 首位也必须是2 
//即第一个前缀和>x的位置及之后全都是2 