#include "bits/stdc++.h"
using namespace std;
typedef long long ll;
const ll INF = 1LL << 60;
const ll MOD = 998244353;
ll dp[3001][6001];
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;
}
int main() {
	int N, X;
	cin >> N >> X;
	comb_init(N);
	dp[0][0] = 1;
	for (int i = 0; i < N; i++) for (int j = 0; j <= 2 * i; j++) {
		(dp[i + 1][j + 1] += dp[i][j]) %= MOD;
		(dp[i + 1][j + 2] += dp[i][j]) %= MOD;
	}
	ll ans = 0;
	for (int i = 0; i <= N; i++) {
		ll sum = 0;
		for (int j = i; j < X; j++) (sum += dp[i][j]) %= MOD;
		for (int j = 1; 2 * j <= i; j++) {
			if (X - 1 < 2 * j) break;
			(sum += dp[i - 2 * j][X - 1 - 2 * j]) %= MOD;
		}
		(ans += sum * comb(N, i) % MOD) %= MOD;
	}
	if (X % 2 == 1) {
		for (int i = X; i <= N; i++) (ans += comb(N, i)) %= MOD;
	}
	cout << ans << endl;
 }