AT_stpc2025_1_d Grid Path Tree

Description

正整数 $ N, M $ が与えられます。 $ k = 1, 2, \dots, N + M - 1 $ に対して、以下の問題の答えを $ \mathrm{ans}_{k} $ とします。 > 長さ $ N + M - 1 $ の数列 $ a = (a_{1}, a_{2}, \dots , a_{N + M - 1}), b = (b_{1}, b_{2}, \dots, b_{N + M - 1}) $ の組 $ (a, b) $ であって、以下の条件をすべて満たすものを**良い数列の組**とします。 > > - $ (a_1,b_1)=(1, N+1) $ > - $ i=2,3,\dots, N+M-1 $ について、次のいずれかが成り立つ > - $ (a_i, b_i) = (a_{i - 1} + 1, b_{i - 1}) $ > - $ (a_i, b_i) = (a_{i - 1}, b_{i - 1} + 1) $ > - $ (a_{N+M-1}, b_{N+M-1})=(N, N+M) $ > > **良い数列の組** $ (a, b) $ に対して、木 $ T(a, b) $ を以下の条件をすべて満たすものとして定めます。 > > - 頂点に $ 1 $ から $ N + M $ までの番号がついた $ N + M $ 頂点の木 > - $ i = 1, 2, \dots, N + M - 1 $ について、頂点 $ a_{i} $ と頂点 $ b_{i} $ を結ぶ辺が存在する > > 木に対して頂点 $ i $ と頂点 $ j $ を結ぶ単純パスに含まれる辺の個数を $ \mathrm{dist}(i,j) $ とし、木の**スコア**を $ 1\leq i < j\leq N + M $ かつ $ \mathrm{dist}(i, j) = k $ を満たす整数の組 $ (i, j) $ の個数とします。 > > すべての**良い数列の組** $ (a, b) $ に対する $ T(a, b) $ の**スコア**の総和を $ 998244353 $ で割ったあまりを求めてください。 $ \mathrm{ans}_1, \mathrm{ans}_2, \dots, \mathrm{ans}_{N+M-1} $ をすべて求め、 $ \displaystyle \sum_{k = 1}^{N + M - 1} (\mathrm{ans}_{k}\oplus k) $ を出力してください。ここで、 $ \oplus $ はビットごとの排他的論理和です。 ビットごとの排他的論理和とは 非負整数 $ A,B $ のビットごとの排他的論理和 (XOR) $ A \oplus B $ は、以下のように定義されます。 - $ A \oplus B $ を二進表記した際の $ 2^k \, (k \geq 0) $ の位の数は、 $ A,B $ を二進表記した際の $ 2^k $ の位の数のうち一方のみが $ 1 $ であれば $ 1 $ 、そうでなければ $ 0 $ である。 例えば、 $ 3 \oplus 5 = 6 $ となります (二進表記すると: $ 011 \oplus 101=110 $ )。

Input Format

入力は以下の形式で与えられる。 > $ N $ $ M $

Output Format

答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ (\mathrm{ans}_1,\mathrm{ans}_2,\mathrm{ans}_3) = (6, 4, 2) $ となるため、出力すべき値は、 $ (6\oplus 1) + (4\oplus 2) + (2\oplus 3) = 7 + 6 + 1 = 14 $ です。 ### Constraints - 入力はすべて整数 - $ 1\leq N\leq 5\times 10^{6} $ - $ 1\leq M\leq 5\times 10^{6} $