# your code goes here
from functools import lru_cache
import sys
from time import time
sys.setrecursionlimit(1000000)
mod = 998244353
@lru_cache(maxsize=None)
def fs(k, n):
if k <= 0 or n <= 0:
return 0
elif n == 1:
return 2 if k == 1 else 0
return (fs(k-1, n-1) + 2*fd(k, n-1) + fs(k, n-1)) % mod
@lru_cache(maxsize=None)
def fd(k, n):
if k <= 0 or n <= 0:
return 0
elif n == 1:
return 2 if k == 2 else 0
return (2*fs(k-1, n-1) + fd(k-2, n-1) + fd(k, n-1)) % mod
start = time()
n, k = map(int, input().split())
print((fs(k, n) + fd(k, n)) % mod)
end = time()
print(f'time: {end-start}')
IyB5b3VyIGNvZGUgZ29lcyBoZXJlCmZyb20gZnVuY3Rvb2xzIGltcG9ydCBscnVfY2FjaGUKaW1wb3J0IHN5cwpmcm9tIHRpbWUgaW1wb3J0IHRpbWUKCnN5cy5zZXRyZWN1cnNpb25saW1pdCgxMDAwMDAwKQoKbW9kID0gOTk4MjQ0MzUzCgpAbHJ1X2NhY2hlKG1heHNpemU9Tm9uZSkKZGVmIGZzKGssIG4pOgogICAgaWYgayA8PSAwIG9yIG4gPD0gMDoKICAgICAgICByZXR1cm4gMAogICAgZWxpZiBuID09IDE6CiAgICAgICAgcmV0dXJuIDIgaWYgayA9PSAxIGVsc2UgMAogICAgCiAgICByZXR1cm4gKGZzKGstMSwgbi0xKSArIDIqZmQoaywgbi0xKSArIGZzKGssIG4tMSkpICUgbW9kCgpAbHJ1X2NhY2hlKG1heHNpemU9Tm9uZSkKZGVmIGZkKGssIG4pOgogICAgaWYgayA8PSAwIG9yIG4gPD0gMDoKICAgICAgICByZXR1cm4gMAogICAgZWxpZiBuID09IDE6CiAgICAgICAgcmV0dXJuIDIgaWYgayA9PSAyIGVsc2UgMAogICAgcmV0dXJuICgyKmZzKGstMSwgbi0xKSArIGZkKGstMiwgbi0xKSArIGZkKGssIG4tMSkpICUgbW9kCgpzdGFydCA9IHRpbWUoKQpuLCBrID0gbWFwKGludCwgaW5wdXQoKS5zcGxpdCgpKQpwcmludCgoZnMoaywgbikgKyBmZChrLCBuKSkgJSBtb2QpCmVuZCA9IHRpbWUoKQoKcHJpbnQoZid0aW1lOiB7ZW5kLXN0YXJ0fScp