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;
#define N 6000

const LL mod=998244353;
LL n,m,ans,fac[N],ifac[N];

LL inv(LL x){return x==1?1:(mod-mod/x)*inv(mod%x)%mod;}

void upd(LL &x,LL y){x=(x+y)%mod;}

LL C(LL x,LL y){
	return x<y||y<0?0:fac[x]*ifac[y]%mod*ifac[x-y]%mod;
}

int main(){
	scanf("%lld%lld",&n,&m);
	fac[0]=1; for (LL i=1;i<=n;++i) fac[i]=fac[i-1]*i%mod;
	ifac[n]=inv(fac[n]); for (LL i=n-1;~i;--i) ifac[i]=ifac[i+1]*(i+1)%mod;
	for (LL i=0;i<=n;++i){
		LL tmp=0;
		for (LL j=0;j<=m-1&&j<=i;++j)
			if (j*2>=m-1){
				LL k=i-j;
				if (i>=k){
					LL t=j-k,w=m-1-j-k;
					if (t<0){
						if (j*2==m-1) upd(tmp,1);
					}
					else upd(tmp,C(t,w));
				}
			}
		for (LL j=0;j<m-1;++j) upd(tmp,C(i,j-i));
		upd(ans,tmp*C(n,i));
	}
	printf("%lld\n",ans);
	
	return 0;
}
			