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 int long long
const int mod=998244353,N=5e5+5;
int fac[N],inv[N];
int ksm(int b,int n){
	int res=1;
	while(n){
		if(n&1) res=res*b%mod;
		b=b*b%mod; n>>=1; 
	}
	return res;
}
void init(int n){
	fac[0]=1;
	for(int i=1;i<=n;++i)
		fac[i]=1ll*fac[i-1]*i%mod;
	inv[n]=ksm(fac[n],mod-2);
	for(int i=n-1;i>=0;--i)
		inv[i]=1ll*inv[i+1]*(i+1)%mod;
}
int C(int n,int m){
	if(n<0||m<0||n<m) return 0;
	return fac[n]*inv[m]%mod*inv[n-m]%mod;
}
int X;
void add(int &x,int y){
	x=(x+y)%mod;
}
int calc(int n){
	int ans=(2*n<X || X&1);
	for(int i=n;i<=n+n-1;++i)
		if(i<X) add(ans,C(n,i-n));
		else if((i-X+1)%2==0){
			int p=(i-X+1)/2;
			add(ans,C(n-(p<<1),i-(p<<2)-(n-(p<<1))));
		}
	return ans;
}
signed main(){
	int n,ans=0;
	cin>>n>>X;
	init(max(n,X));
	for(int i=0;i<=n;++i)
		add(ans,C(n,i)*calc(i)%mod);
	cout<<ans;
	return 0;
}