3895 - 多边形染色

通过次数

0

提交次数

0

时间限制 : 1 秒
内存限制 : 128 MB

Flokirie有一个美丽的凸n边形,顶点编号为1~n,每条边长都不相等。

他想把每个顶点都染成1~c中某一颜色,且相邻顶点颜色不能相同。

他想知道所有可行方案共有多少。于是他在纸上算了算,5分钟就解决了这题。

于是他觉得太low了,便定义了以下骚操作。

① 1 x p:表示第x个顶点必须染颜色p。

② 2 x p:表示第x个顶点必须不染颜色p。

③ 3 x y:表示更改第x个顶点与第y个顶点之间边的属性(保证y=x±1,且x,y≠1,n),第x个顶点必须与第y个顶点颜色相同。

现在,他想知道所有可行的方案共有多少种。由于结果可能过大,你只需输出它对987654321取模的结果即可。

输入

第一行,三个正整数n,m,c,表示多边形边数、操作个数、颜色个数。

第2~(m+1)行,每行三个正整数表示一个操作,具体意义见题目描述。

输出

一行一个整数,为所有可行操作和模上987654321的结果。

样例

输入

3 0 3

输出

6

输入

5 2 5
2 3 4
3 2 3

输出

208

提示

n \leq 50000 ,m \leq 1000 , c\leq 10

来源

Flokirie