P7896 『JROI-3』Moke 的游戏

题目描述

Moke 是一个喜欢玩游戏的男孩子。 众所周知,游戏应当有血量。血量**永远是非负整数**,如果在某个时刻血量将要变为负数,那么游戏会崩溃,这就不算作一种游戏局面。这里允许血量是 $0$。 一般来说,友好的游戏都会具有一定的初始血量。但是 Moke 是一个喜欢在游戏里受虐的男孩子。所以他把自己的初始血量设成了 $0$。 不过,这个游戏的难度并不高。 它一共进行 $n+1$ 个时刻。初始是第 $0$ 个时刻,最终是第 $n$ 个时刻。每个时刻 Moke 会遇到以下三种事件,然后进入下一时刻: 1. 空地。它使得 Moke 的血量不变。一共有 $a_0$ 种不同的空地。 2. 怪兽。它使得 Moke 的血量减一。一共有 $a_{-1}$ 种不同的怪兽。 3. 道具。它使得 Moke 的血量增加一个正整数。具体地,一共有 $a_p$ 种使 Moke 血量加 $p$ 的道具,其中 $p \in \mathbb Z^+$。 为了不让游戏太复杂,游戏的开发者保证 $\big|\{p \mid p \in \mathbb Z^+ \land a_p > 0\}\big|=k$。即,所有道具总共只造成恰好 $k$ 种不同的血量变化量。 当然,Moke 还是给自己进一步增加了难度。他要求结束时自己的血量为 $0$,且给出一个正整数 $m$,表示限制这 $n+1$ 个时刻中,他恰好有 $m$ 次血量为 $0$(包括初始时刻)。 请求出所有不同的,符合 Moke 限制的游戏局面个数。两个局面不同当且仅当每个时刻遇到的事件的种类不同(包括不同的空地、不同的怪兽和不同的道具)。 Moke 不希望你面对太困难的问题。所以他给出一个质数 $P=10^9+7$ 并只要求你给出取模 $P$ 后的答案。

输入格式

第一行,三个正整数 $n,m,k$。 第二行,两个正整数 $a_0,a_{-1}$。 以下 $k$ 行,其中第 $i$ 行两个正整数 $p_i,a_{p_i}$。表示存在道具造成的血量变化量为 $p_i$,且这样的道具有 $a_{p_i}$ 种。

输出格式

一行,一个非负整数。表示答案取模 $P$ 的结果。

说明/提示

- 对于 $30\%$ 的数据,$n \le 15$,$k \le 1$。 - 对于 $50\%$ 的数据,$n \le 100$。 - 对于 $70\%$ 的数据,$n \le 2.5 \times 10^3$。 - 对于 $100\%$ 的数据,$1 \le n \le 5 \times 10^6$,$1 \le m \le n + 1$,$1 \le k \le 10$,$1 \le p_i \le n$,$0 < a_0,a_{-1},a_{p_i} < P$,保证 $p_i$ 从小到大给出且互不相同。