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 mems(a,x) memset(a,x,sizeof(a))
#define first fi
#define second se
using namespace std;
typedef long long ll;
const int mod=998244353,N=3005;
int n,x,c[N][N];
ll dp[N][N<<1];
ll C(ll n,ll m)
{
    if(m==0||n==m) return 1;
    if(m==1) return n;
    if(c[n][m]) return c[n][m];
    return c[n][m]=(C(n-1,m-1)+C(n-1,m))%mod;
}
ll solve(int m)
{
    ll ans=0;
    for(int i=0;i<x;i++) (ans+=dp[m][i])%=mod;
    for(int i=x+1;i<=2*m;i+=2)
    {
        int t=max(0,m-(i-(x-1))),s=i-2*(m-t);
        if(t>=0&&s>=0)
            (ans+=dp[t][s])%=mod;
    }
    return ans;
}
int main()
{
    scanf("%d%d",&n,&x);
    dp[0][0]=1;
    for(int i=0;i<n;i++)
        for(int j=i;j<=i*2;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++)
        ans=(ans+C(n,i)*solve(i))%mod;
    printf("%lld\n",ans);
}
