AT_arc166_c [ARC166C] LU / RD Marking
Description
[problemUrl]: https://atcoder.jp/contests/arc166/tasks/arc166_c
縦 $ H $ 行,横 $ W $ 列のグリッドがあります.
このグリッドには縦向きの辺が $ H(W+1) $ 個,横向きの辺が $ W(H+1) $ 個,合計で $ H(W+1)\ +\ W(H+1) $ 個の辺があります(入出力例の図も参考にしてください).これらの辺に対して,次の $ 2 $ 種の操作によって印をつけることを考えます.
- **操作 (1)**:操作を行う時点で左側の辺と上側の辺に印がついていないようなマスをひとつ選ぶ.そのマスの左側の辺と上側の辺に印をつける.
- **操作 (2)**:操作を行う時点で右側の辺と下側の辺に印がついていないようなマスをひとつ選ぶ.そのマスの右側の辺と下側の辺に印をつける.
操作 (1) と操作 (2) を($ 0 $ 回を含め)何回でも行えるとき,最終的に印がついている辺の集合としてありうるものの個数を $ 998244353 $ で割った余りを求めてください.
$ T $ 個のテストケースが与えられるので,それぞれについて答えを求めてください.
Input Format
入力は以下の形式で標準入力から与えられます.
> $ T $ $ \text{case}_1 $ $ \vdots $ $ \text{case}_T $
各テストケースは以下の形式で与えられます.
> $ H $ $ W $
Output Format
$ T $ 行出力してください.$ i $ 行目には $ i $ 番目のテストケースについて,最終的に印がついている辺の集合としてありうるものの個数を $ 998244353 $ で割った余りを出力してください.
Explanation/Hint
### 制約
- $ 1\leq\ T\leq\ 2\times\ 10^5 $
- $ 1\leq\ H,\ W\leq\ 10^6 $
### Sample Explanation 1
$ (H,\ W)=(1,1) $ の場合には,最終的に印がついている辺の集合としてありうるのは次の $ 4 $ 通りです.印がついている辺を太線で表しています. !\[\](https://img.atcoder.jp/arc166/bd84a15ada55c0df6d4e66863053bd59.png) $ (H,\ W)=(2,3) $ の場合には,例えば次のような辺の集合が\*\*ありえます\*\*. !\[\](https://img.atcoder.jp/arc166/66c77b9132c38d82c36732966ff3ae4f.png) 一方で,次のような辺の集合は\*\*ありえません\*\*. !\[\](https://img.atcoder.jp/arc166/0029e3cc83a0232231ddf6e280c7f9a8.png)