問題文
yosupoくんはクエリの問題が大好きなので、次のような問題を作りました。
A Query Problem
長さ N の整数列 a1,ldots,aN があります。はじめは ai=0(1leqileqN) です。 また、ans という変数があり、はじめは ans=0 です。 ここに、次の形式のクエリが Q 個来ます。
-
クエリ1:
-
ti(=1) li ri vi
-
各 j=li,ldots,ri に対して、aj:=min(aj,vi)
-
クエリ2:
-
ti(=2) li ri vi
-
各 j=li,ldots,ri に対して、aj:=max(aj,vi)
-
クエリ3:
最終的な ans の値を出力してください。
ただし、各クエリについて、1 leq li leq ri leq N が、さらにクエリ1,2については 0 leq vi leq M−1 が成立する。
この問題を見たmaroonくんは簡単すぎると感じたため、次の問題を考えました。
Query Problems
正整数 N,M,Q が与えられます。問題 "A Query Problem" に対する入力は (frac(N+1)N2cdot(M+M+1))Q 通りありますが、それらに対する出力のすべての和を 998,244,353 で割った余りを求めてください。
求めてください。
制約
- 1leqN,M,Qleq200000
- 入力される数はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N M Q
出力
答えを出力せよ。
入力例 1
出力例 1
ありうる入力は 25 通りありますが、そのうち ans が正になるような入力は、次の一通りです:
t1=2,l1=1,r1=1,v1=1,t2=3,l2=1,r2=1
このとき ans は 1 になるので、答えは 1 です。
入力例 2
出力例 2
入力例 3
出力例 3