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;
typedef long long ll;
const ll INF = 1LL << 60;
const ll MOD = 998244353;
ll mod_pow(ll a, ll n) {
	if (n == 0) return 1;
	if (n % 2 == 0) {
		ll tmp = mod_pow(a, n / 2);
		return (tmp * tmp) % MOD;
	}
	return (a * mod_pow(a, n - 1)) % MOD;
}

vector<ll> fact;
vector<ll> inv_fact;

void comb_init(int n) {
	fact.resize(n + 1);
	inv_fact.resize(n + 1);
	fact[0] = inv_fact[0] = 1;
	for (int i = 1; i <= n; i++) {
		fact[i] = (fact[i - 1] * i) % MOD;
		inv_fact[i] = (inv_fact[i - 1] * mod_pow(i, MOD - 2)) % MOD;
	}
}

ll comb(int n, int k) {
	if (n < k) return 0;
	ll ret = fact[n];
	(ret *= inv_fact[k]) %= MOD;
	(ret *= inv_fact[n - k]) %= MOD;
	return ret;
}
ll dp[3001][6001];
ll dp2[3001][6001];
int main() {
	int N, X;
	cin >> N >> X;
	if (N == 1) {
		cout << 2 << endl;
		return 0;
	}
	if (X == 1) {
		cout << mod_pow(2, N) << endl;
		return 0;
	}
	if (X == 2) {
		cout << N + 1 << endl;
		return 0;
	}
	comb_init(N);
	dp[0][0] = 1;
	dp2[0][0] = 1;
	for (int i = 0; i < N; i++) {
		for (int j = 0; j <= 2 * i; j++) {
			(dp[i + 1][j] += dp[i][j]) %= MOD;
			(dp[i + 1][j + 1] += dp[i][j]) %= MOD;
			(dp[i + 1][j + 2] += dp[i][j]) %= MOD;
			(dp2[i + 1][j + 1] += dp2[i][j]) %= MOD;
			(dp2[i + 1][j + 2] += dp2[i][j]) %= MOD;
		}
	}
	ll ans = 0;
	for (int i = 0; i <= N - 2; i++) {
		ll sum = 0;
		for (int j = 0; j < i; j++) {
			if (j * 2 + 1 > X - 3) break;
			if (i + 2 + j <= N) (sum += comb(N, i + 2 + j)) %= MOD;
			(ans += dp2[i - j - 1][X - 3 - (j * 2 + 1)] * sum%MOD) %= MOD;
		}
		if (i * 2 == X - 3) {
			for (int j = 0; j <= N - 2 - i; j++) (ans += comb(N, i + 2 + j)) %= MOD;
		}
	}
	for (int i = 0; i < X; i++) (ans += dp[N][i]) %= MOD;
	cout << ans << endl;
 }