#include <bits/stdc++.h>
using namespace std;
#define int long long
const int mod=998244353;
int n,k,ans;
int dp[2][2001][4];//分别表示第几列,几个连通块,哪种状态
//0,1,2,3表示黑白,白黑,黑黑,白白
signed main()
{
cin >> n >> k;
dp[1][2][0]=dp[1][2][1]=1;
dp[1][1][2]=dp[1][1][3]=1;
for(int i=2;i<=n;i++)
{
int u=i%2,v=(i%2)^1;
for(int j=1;j<=k;j++)
{
int s=max(j-2,(int)0);
dp[u][j][0]=dp[v][j][0]+dp[v][s][1]+dp[v][j-1][2]+dp[v][j-1][3];
dp[u][j][1]=dp[v][j][1]+dp[v][s][0]+dp[v][j-1][2]+dp[v][j-1][3];
dp[u][j][2]=dp[v][j][2]+dp[v][j-1][3]+dp[v][j][0]+dp[v][j][1];
dp[u][j][3]=dp[v][j][3]+dp[v][j-1][2]+dp[v][j][0]+dp[v][j][1];
for(int q=0;q<=3;q++)
dp[u][j][q]%=mod;
}
}
for(int i=0;i<=3;i++)
ans = (ans + dp[n%2][k][i] )%mod;
cout << ans;
}