#P4019. 多边形染色

多边形染色

题目背景

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

提示

所有测试点满足以下约定: