AT_tenka1_2012_qualA_3 敵対的引用

题目描述

你有 $N$ 个小组,每个小组的名字从「group1」到「group$N$」。这些小组之间有时会相互呼叫并引用彼此的发言。 当 group$A$ 对 group$B$ 是攻击性时: - group$A$ 呼叫 group$B$ 时,会在名字末尾加一个 `w`,变成「group$B$w」。 - group$A$ 引用 group$B$ 的发言时,会用双引号把发言内容括起来,并在后面加上 `ww`,形成 `"...ww"`。 当 group$A$ 对 group$B$ 没有攻击性时: - 呼叫 group$B$ 时,直接使用「group$B$」。 - 引用 group$B$ 的发言时,仅用双引号括起发言内容,不加附加内容,表现为 `"..."`。 例如:如果 group2 对 group1 是攻击性的,那么 group2 会说 `group1w`。如果 group3 对 group2 也是攻击性的,那么 group3 会说 `"group1w"ww`。若 group2 对 group3 没有攻击性,则 group2 会说 `group3`。若 group1 对 group2 没有攻击性,则 group1 会说 `"group3"`。 需要注意的是,有可能 group$A$ 对 group$B$ 是攻击性的,但 group$B$ 不对 group$A$ 攻击,甚至会有组自对自身攻击的情况。 给你一个发言,请判断哪些小组可能说出了这句话,并给出可能的小组数量。

输入格式

输入第一行包含两个整数 $N$ 和 $M$,分别表示小组的总数和敌对关系的数量。这一行的格式是: ``` N M ``` 之后的 $M$ 行,每行两个整数 $a_i$ 和 $b_i$,表示小组 $a_i$ 对小组 $b_i$ 是攻击性的,其格式为: ``` a_1 b_1 a_2 b_2 ... a_M b_M ``` 接下来最后一行是一个字符串 $s$,代表某小组的发言内容: ``` s ```

输出格式

输出一个整数,表示可能发出该发言的小组数量。

说明/提示

- $1 \leq N \leq 10^5$ - $1 \leq M \leq 10000$ - $1 \leq a_i, b_i \leq N$ - 字符串 $s$ 的长度不超过 $300$ - 至少有一个小组可能发出的发言 在小组数量小的情况下($1 \leq N \leq 100$),正确解答这些情况即可获得部分分数(50分)。 **本翻译由 AI 自动生成**