#1485. 石子移动

石子移动

石子移动

题目描述

你正在玩一种游戏,定义游戏规则如下:给一张nn个点,mm条边的有向无环图,每条边都有颜色cc,在图上放了qq颗石子,每颗石子在一个点上。

每次操作时选择一个有出边且点上有石子的点xx,从点上取走一颗石子,然后选择一个颜色集合SS,对于每条xx满足颜色eSe \in S的出边ii(可以没有),在边ii的终点上放上一颗石子。双方轮流操作,不能操作者负。

你想知道是先手获胜还是后手获胜。

输入格式

第一行包含两个整数nnmm,表示图的点数和边数。

22m+1m+1行每行包含三个整数ssttcc,表示一条边的起点、终点和颜色。

接下来一行包含一个整数qq,表示石子数量。

接下来一行包含qq个整数,表示每颗石子所在的点。

输出格式

输出一个整数,如果先手必胜则输出11,否则输出00

数据范围与提示

对于100%100\%的数据,1<n<2001 < n < 2001<m<50001 < m < 50001q100001 \leq q \leq 100001<c<50001 < c < 5000

本题采用子任务捆绑测试。对于每个子任务,你只有通过了这个子任务的所有数据,才能获得这个子任务的分数。

  • 子任务112020分):n<5n < 5m<10m < 10q20q \leq 20
  • 子任务223030分):n<20n < 20m<100m < 100q100q \leq 100
  • 子任务335050分):无特殊限制。

样例

2 1
2 1 1
1
2
1
见stonemove2.in
见stonemove2.out