AT_mujin_pc_2018_h タイル張り
Description
[problemUrl]: https://atcoder.jp/contests/mujin-pc-2018/tasks/mujin_pc_2018_h
$ H\times\ W $ のマス目のすべてのマスを白か黒で塗る方法であって、 以下の条件を満たすように $ 1\times\ 2 $ のタイル何枚かを(必要ならそのうち何枚かを回転させて)置くことができるようにする方法の個数を $ 998244353 $ で割ったあまりを求めてください。
- タイルはマス目からはみ出してはならず、また異なるタイル同士が重なってはならない。
- 全てのタイルは、マス目のちょうど $ 2 $ マスを完全に覆う。
- 白く塗られたすべてのマスは、ちょうど $ 1 $ 枚のタイルによって覆われている。
- 黒く塗られたすべてのマスは、タイルに覆われていない。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ H $ $ W $
Output Format
条件を満たす塗り分けの個数を出力せよ。
Explanation/Hint
### 制約
- $ 1\ \leq\ H\ \leq\ 5 $
- $ 1\ \leq\ W\ \leq\ 10^9 $
- 入力はすべて整数である
### Sample Explanation 1
全てのマスを白く塗る $ 1 $ 通り、全てのマスを黒く塗る $ 1 $ 通り、隣接する $ 2 $ マスを黒く塗り、残りの $ 2 $ マスを白く塗る $ 4 $ 通りの合計 $ 6 $ 通りが条件を満たします。