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;
typedef long long ll;
const int N=3025,p=998244353,inf=0x3f3f3f3f;
int read(){
	int f=1,g=0;
	char ch=getchar();
	for (;!isdigit(ch);ch=getchar()) if (ch=='-') f=-1;
	for (;isdigit(ch);ch=getchar()) g=g*10+ch-'0';
	return f*g;
}
int ans,n,k,C[N][N];
void check(int &x,int y){x=(x+y<p) ? (x+y) : (x+y-p);}
int calc(int n,int k){
	int res=(k&1)|(n*2<k);
	for (int i=n;i<n*2;i++)
	if (i<k) check(res,C[n][i-n]);
	else if ((i-k)&1){
		int cnt=(i-k+1)/2;
		if (cnt*2>=n) break;
		int len=n-cnt*2,s=i-cnt*4;
		if (s>=len) check(res,C[len][s-len]);
	}
	return res;
}
int main(){
//	freopen("a.in","r",stdin);
//	freopen("a.out","w",stdout);
	n=read();k=read();
	for (int i=0;i<=n;i++){
		C[i][0]=1;
		for (int j=1;j<=i;j++)
		C[i][j]=(C[i-1][j]+C[i-1][j-1])%p;
	}
	for (int i=0;i<=n;i++)
	ans=(ans+(ll)C[n][i]*calc(i,k))%p;
	printf("%d\n",ans);
	return 0;
}