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 <iostream>

using namespace std;
typedef long long ll;
const int MAX = 6010;
ll inv[MAX],fact[MAX],fi[MAX],mod = 998244353;
void inverse(){
	int i;
	inv[1] = 1;
	for(i=2;i<MAX;i++){
		inv[i] = mod - (mod/i)*inv[mod%i]%mod;
	}
	fact[0] = fi[0] = 1;
	for(i=1;i<MAX;i++){
		fact[i] = fact[i-1]*i%mod;
		fi[i] = (fi[i-1]*inv[i])%mod;
	}
}

ll comb(int n,int k){
	if(n<0 || k<0 || n<k){
		return 0;
	}else{
		return fact[n]%mod*fi[k]%mod*fi[n-k]%mod;
	}
}

ll solve(int x,int s,int t){
	int k = s + 2*t;
	if(k<x) return comb(s + t,t);
	if((k - (x - 1))&1) return 0;
	if(s==0) return (x&1);
	if(k>=2*(x - 1)) return 0;
	int l = k - (x - 1);
	return comb(s + t - l,s);
}

int main(){
	int i,j,n,x;
	cin >> n >> x;
	inverse();
	ll ans = 0;
	for(i=0;i<=n;i++){
		for(j=0;j<=n;j++){
			if(i + j>n) continue;
			(ans += solve(x,i,j)*comb(n,(i + j))%mod) %= mod;
		}
	}
	cout << ans << endl;
}