AT_arc182_a [ARC182A] Chmax Rush!

Description

[problemUrl]: https://atcoder.jp/contests/arc182/tasks/arc182_a 長さ $ N $ の整数列 $ S $ があります。はじめ、$ S $ の要素はすべて $ 0 $ です。 また、長さ $ Q $ の整数列 $ P=(P_1,P_2,\dots,P_Q) $ と $ V=(V_1,V_2,\dots,V_Q) $ が与えられます。 すぬけ君は、数列 $ S $ に $ Q $ 回の操作を順に行いたいです。$ i $ 回目の操作は以下です。 - 以下のどちらかの操作を行う。 - $ S_1,S_2,\dots,S_{P_i} $ をすべて $ V_i $ に置き換える。ただし、この操作の前に $ S_1,S_2,\dots,S_{P_i} $ の中に $ V_i $ より真に大きい要素がある場合、すぬけ君は泣き出す。 - $ S_{P_i},S_{P_i+1},\dots,S_N $ をすべて $ V_i $ に置き換える。ただし、この操作の前に $ S_{P_i},S_{P_i+1},\dots,S_N $ の中に $ V_i $ より真に大きい要素がある場合、すぬけ君は泣き出す。 すぬけ君が泣き出さないように $ Q $ 回の操作をすべて行うことのできるような操作列の個数を $ 998244353 $ で割った余りを求めてください。 ただし、$ 2 $ つの操作列が異なるとは、ある $ 1\leq\ i\leq\ Q $ が存在して、$ i $ 番目の操作でどちらの操作を選択したかが異なることを指します。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ Q $ $ P_1 $ $ V_1 $ $ P_2 $ $ V_2 $ $ \vdots $ $ P_Q $ $ V_Q $

Output Format

答えを整数として出力せよ。

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 5000 $ - $ 1\ \leq\ Q\ \leq\ 5000 $ - $ 1\ \leq\ P_i\ \leq\ N $ - $ 1\ \leq\ V_i\ \leq\ 10^9 $ - 入力はすべて整数 ### Sample Explanation 1 以下のようにするとすぬけ君が泣き出さないように $ 3 $ 回の操作を行うことができます。 - $ S_1 $ を $ 8 $ に置き換える。 - $ S_8 $ を $ 1 $ に置き換える。 - $ S_2,S_3,\dots,S_8 $ を $ 1 $ に置き換える。 これ以外に条件を満たす操作列はないので、$ 1 $ が答えです。例えば、$ 1 $ 回目の操作で $ S_1,S_2,\dots,S_8 $ を $ 8 $ に置き換えると、$ 2 $ 回目の操作でどちらを選んでもすぬけ君が泣き出してしまいます。 ### Sample Explanation 2 $ 2 $ 回目までの操作をどのように行っても $ 3 $ 回目の操作ですぬけ君が泣き出してしまいます。 ### Sample Explanation 3 $ 998244353 $ で割った余りを求めることを忘れないでください。