#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int base = 998244353;
int cache[1005][2][2][2005];
bool ready[1005][2][2][2005];
int n, k;
const int d[4] = {1, 0, -1, 0};
int dp(int x, int a, int b, int c) {
  if (c > k) return 0;
  if (x == n) {
    return (k == c);
  }
  if (ready[x][a][b][c]) return cache[x][a][b][c];
  ready[x][a][b][c] = true;
  int &rv = cache[x][a][b][c];
  rv = 0;
  for (int i = 0; i < 4; ++i) {
    int a_ = ((i & 1) != 0);
    int b_ = ((i & 2) != 0);
    int comp = 0;
    if (a != a_ and a_ != b_) comp++;
    if (b != b_ and a_ != b_) comp++;
    if (a == b and a_ == b_ and a != a_) comp++;
    rv += dp(x + 1, a_, b_, c + comp);
    rv %= base;
  }
  return rv;
}
int main() {
  cin >> n >> k;
  int res = dp(1, 0, 0, 1) % base;
  (res += dp(1, 0, 1, 2)) %= base;
  (res += dp(1, 1, 0, 2)) %= base;
  (res += dp(1, 1, 1, 1)) %= base;
  cout << res << endl;
}
