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 ll long long
#define inf 1010000000
#define infll 1010000000000000000ll
#define vi vector<int>
#define vll vector<ll>
#define pb push_back
#define pii pair<int,int>
#define pll pair<ll,ll>
#define pdd pair<double,double>
#define mpr make_pair
#define fi first
#define se second
#define pq priority_queue<int>
#define pqll priority_queue<ll>
#define up(x,y) (x<(y)?x=(y):0)
#define dn(x,y) (x>(y)?x=(y):0)
#define ad(x,y) (x=(x+(y))%mod)
#define ll long long
#define N 10009
#define mod 998244353
using namespace std;

int n,m,ans,fac[N],ifac[N];

int inv(int x){return x==1?1:(ll)(mod-mod/x)*inv(mod%x)%mod;}
ll C(int x,int y){
	return x<y||y<0?0:(ll)fac[x]*ifac[y]%mod*ifac[x-y]%mod;
}

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