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<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

#define fo(i,j,l) for(int i=j;i<=l;++i)
#define fd(i,j,l) for(int i=j;i>=l;--i)

using namespace std;
typedef unsigned long long ll;
const ll N=12e4,mo=998244353;

ll jc[N],ny[N];

inline ll ksm(ll o,ll t)
{
	ll y=1;
	for(;t;t>>=1,o=o*o%mo)
	if(t&1)y=y*o%mo;
	return y;
}

inline ll C(int a,int b)
{return (a<b||b<0)?0:(jc[a]*ny[b]%mo*ny[a-b]%mo);} 

int n,x;

int main()
{
	scanf("%d%d",&n,&x);
	jc[0]=ny[0]=1;
	fo(i,1,n)jc[i]=jc[i-1]*i%mo;
	ny[n]=ksm(jc[n],mo-2);
	fd(i,n-1,1)ny[i]=ny[i+1]*(i+1)%mo;
	ll ans=1;
	fo(i,1,x-1){
		int ha=i>>1;
		fo(l,0,ha){
			int lef=i-2*l;
			ans=(ans+C(n,l)*C(n-l,lef))%mo;
		}
	}
	fo(i,1,n){
		if(2*i>=x-1){
			if(x%2==1)
			fo(l,i,n)
			if(2*l-(x-1)>=x-1)ans=(ans+C(n,l))%mo;
			break;
		}
		int hh=(x-1)-2*i,ha=hh>>1;
		fo(l,0,ha)ans=(ans+C(hh-l,l)*C(n,2*i+hh-l))%mo;
	}
	cout<<ans;
}