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 int MOD = 998244353;
const int MAX = 3100;

long long fac[MAX], finv[MAX], inv[MAX];

void COMinit() {
    fac[0] = fac[1] = 1;
    finv[0] = finv[1] = 1;
    inv[1] = 1;
    for (int i = 2; i < MAX; i++){
        fac[i] = fac[i - 1] * i % MOD;
        inv[i] = MOD - inv[MOD%i] * (MOD / i) % MOD;
        finv[i] = finv[i - 1] * inv[i] % MOD;
    }
}

long long COM(int n, int k){
    if (n < k) return 0;
    if (n < 0 || k < 0) return 0;
    return fac[n] * (finv[k] * finv[n - k] % MOD) % MOD;
}

int main(){
	int N, X; cin >> N >> X;
	COMinit();
	ll ans = 0;
	for(int i=0; i<=N; i++){
		for(int j=i; j<=2*i; j++){
			ll cnt = 0;
			if(j < X){
				cnt = (cnt + COM(i, j-i)) % MOD;
			}else{
				int two = (j-X+2)/2;
				if(4*two < j){
					int midsum = j - 4*two;
					int midnum = i - 2*two;
					if(midsum % 2 != X % 2){
						cnt = (cnt + COM(midnum, midsum-midnum)) % MOD;
					}
				}else{
					if(2*two >= i && j == 2*i && X % 2 != 0){ cnt++; cnt %= MOD; }
				}
			}
			ans = (ans + cnt * COM(N, i) % MOD) % MOD;
		}
	}
	cout << ans << endl;
}
