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 $ 通りが条件を満たします。