A84813.午枫的填数游戏

普及/提高-

官方

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小午有一个长度为 nn 的序列 aa ,起初,序列 aa 的元素都为 00

现在小午给了小枫 qq 个数对 (pi,vi)(p_i,v_i) ,要求小枫按顺序执行这 qq 个数对,其中每个数对可以按照以下两种方式中的一种进行执行:

  • 将序列 aaa1,a2,,apia_1,a_2,\cdots,a_{p_i} 替换为 viv_i 。但是在执行这个操作之前,必须保证 a1,a2,,apia_1,a_2,\cdots,a_{p_i} 所有元素都小于或等于 viv_i
  • 将序列 aaapi,api+1,,ana_{p_i},a_{p_i+1},\cdots,a_{n} 替换为 viv_i 。但是在执行这个操作之前,必须保证 api,api+1,,ana_{p_i},a_{p_i+1},\cdots,a_{n} 所有元素都小于或等于 viv_i

如果对于存在一个数对无法执行,那小枫就会生气。

小午想知道有多少种不同的执行序列可以把 qq 个数对执行完,如果无法全部执行,则输出 0

当且仅当有 1iq1\leq i\leq q 使得第 ii 个执行方式的选择不同时,两个执行序列不同。

输入格式

第一行输入两个整数 n,qn,q (2n5000,1q5000)(2\leq n\leq 5000, 1\leq q\leq 5000) ,分别表示序列 aa 的长度以及数对数量。

接下来 qq 行,每行两个整数 pi,vip_i,v_i (1pin,1vi109)(1\leq p_i\leq n,1\leq v_i\leq 10^9) ,表示第 ii 个数对中的元素。

输出格式

输出一个整数,表示有多少种不同的执行序列可以把 qq 个数对执行完,由于答案可能很大,最终结果对 998244353998244353 取模。

输入输出样例

  • 输入#1

    8 3
    1 8
    8 1
    2 1

    输出#1

    1
  • 输入#2

    8 3
    8 1
    1 8
    1 2

    输出#2

    0

说明/提示

样例1解释

小枫只能进行以下方式执行:

  • a1a_1 替换为 88
  • a8a_8 替换为 11
  • a2,a3,,a8a_2,a_3,\cdots,a_8 替换为 1

没有其他的执行序列不会让小枫生气。

首页