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 ref(i,x,y)for(int i=x;i<=y;++i)
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define SZ(x) ((int)x.size())
typedef long long LL;
typedef pair<int,int> PII;
int read(){
	char c=getchar();int d=0,f=1;
	for(;c<'0'||c>'9';c=getchar())if(c=='-')f=-1;
	for(;c>='0'&&c<='9';d=d*10+c-48,c=getchar());
	return d*f;
}
const int N=3010;
const int mod=998244353;
int n,x,ans,mi2[N],c[N][N],f[N][N*2];
void inc(int&a,int b){ a+=b;if(a>=mod)a-=mod; }
int mul(int a,int b){return (LL)a*b%mod;}
int main(){
	cin>>n>>x;
	f[0][0]=1;
	ref(i,0,n-1)ref(j,0,n*2)if(f[i][j]){
		inc(f[i+1][j+1],f[i][j]);
		inc(f[i+1][j+2],f[i][j]);
	}
	ref(i,0,n)c[i][0]=1;
	ref(i,1,n)ref(j,1,i)c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
	ans=1;
	ref(i,1,n){
		int s=c[n][i];
		int r=0;
		ref(j,1,x-1)inc(r,f[i][j]);
		ref(j,1,i)if(j<=x+1&&x+1<=j*2){
			int a=min(j-2,i-j)+2,b=x+1-a*2;
			if(a<=j&&b>=0)inc(r,f[j-a][b]);
		}
		inc(ans,mul(s,r));
		//cout<<i<<" "<<r<<endl;
	}
	cout<<ans<<endl;
}