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>
#define rep(i,x,y) for (int i=(x);i<=(y);i++)
#define ll long long

using namespace std;

const int N=3010,mod=998244353;
int n,x,f[N][N<<1],fac[N],inv[N],ans;

inline void upd(int &x,int y){x+=y; x-=x>=mod?mod:0;}

void init(int n){
	fac[0]=fac[1]=inv[0]=inv[1]=1;
	rep (i,2,n) fac[i]=(ll)fac[i-1]*i%mod,inv[i]=(ll)(mod-mod/i)*inv[mod%i]%mod;
	rep (i,2,n) inv[i]=(ll)inv[i]*inv[i-1]%mod;
}
int C(int n,int m){return (ll)fac[n]*inv[m]%mod*inv[n-m]%mod;}

int main(){
	ios::sync_with_stdio(0);
	cin>>n>>x; init(n);
	f[0][0]=1;
	rep (i,1,n) rep (j,1,x){
		upd(f[i][j],f[i-1][j-1]);
		if (j>1) upd(f[i][j],f[i-1][j-2]);
	}
	rep (i,0,n){
		int res=0;
		rep (j,0,x-2) upd(res,f[i][j]);
		rep (j,0,i)
			if (i-j<=j&&x-1-2*(i-j)>=0) upd(res,f[j-(i-j)][x-1-2*(i-j)]);
			else if (i-j>j&&j*2==x-1) upd(res,1);
		upd(ans,(ll)C(n,i)*res%mod);
	}
	printf("%d\n",ans);
	return 0;
}