#joi2012yod. [joi2012yo_d]パスタ (Pasta)

[joi2012yo_d]パスタ (Pasta)

问题

你非常喜欢意大利面,每天晚餐都会做意大利面吃。你会做三种面食:番茄酱面、奶油面和罗勒酱面。

现在你考虑了连续 NN 天的晚餐计划。每天从这三种面食中选择一种。然而,由于吃同样的面食会变得乏味,所以不能连续 33 天选择同一种面食。另外,有 KK 天的晚餐已经确定了。

给定 NN 和已确定晚餐的 KK 以及它们的信息,请编写程序计算满足条件的晚餐计划有多少种,结果对 10,00010,000 取余。


输入

输入共 K+1K+1 行。

11 行包含两个整数 NNKK (3N1003 \leq N \leq 100, 1KN1 \leq K \leq N)。

接下来 KK 行,每行包含两个整数 AiA_iBiB_i (1AiN1 \leq A_i \leq N, 1Bi31 \leq B_i \leq 3)。表示 AiA_i 天的晚餐已经确定,其中 Bi=1B_i = 1 表示番茄酱面,Bi=2B_i = 2 表示奶油面,Bi=3B_i = 3 表示罗勒酱面。所有的 AiA_i (1iK1 \leq i \leq K) 都是不同的。输入数据保证存在至少 11 种满足条件的晚餐计划。

输出

输出满足条件的晚餐计划的数量对 10,00010,000 取余后的结果。


示例 1

5 3
3 1
1 1
4 2

输出 1

6

在示例 1 中,你考虑了连续 55 天的晚餐计划。第 11 天和第 33 天选择番茄酱面,第 44 天选择奶油面。根据条件的限制,共有 66 种满足条件的晚餐计划。

2012-yo-t4-fig01.png

这个表中,11 表示番茄酱面,22 表示奶油面,33 表示罗勒酱面。


示例 2

20 5
10 2
4 3
12 1
13 2
9 1

输出 2

2640

在示例 2 中,满足条件的晚餐计划共有 4,112,6404,112,640 种。取余 10,00010,000 得到结果 2,6402,640