AT_tenka1_2012_qualA_3 敵対的引用

Description

[problemUrl]: https://atcoder.jp/contests/tenka1-2012-qualA/tasks/tenka1_2012_qualA_3 $ N $ 個のグループがあります。 それぞれのグループには、「group$ 1 $」から「group$ N $」までの名前がついています。 ある日、あるグループがあるグループを呼び、そして、発言を引用するということが繰り返されました。 group$ A $ が group$ B $ に対して攻撃的であるとします。そのとき - group$ A $ は group$ B $ を呼ぶとき、グループの名前のうしろに `w` をつけ、「group$ B $w」 と発言します。 - group$ A $ は group$ B $ の発言を引用するとき、group$ B $ の発言をダブルクォーテーション (`"`) で囲んで引用し、うしろに `ww` をつけて発言します。 また、group$ A $ が group$ B $ に対して攻撃的でないとします。そのとき - group$ A $ は group$ B $ を呼ぶとき、「group$ B $」 と発言します。 - group$ A $ は 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 $ に攻撃的ではないということもあります。 また、自虐的なグループ、つまり自分自身に対して攻撃的なグループもあります。 ある $ 1 $ つの発言が与えられるので、その発言をしそうなグループの総数を答えてください。 入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ a_1 $ $ b_1 $ $ a_2 $ $ b_2 $ : : $ a_M $ $ b_M $ $ s $ - $ 1 $ 行目は、グループの数を表す整数 $ N $ ($ 1\ \leq\ N\ \leq\ 10^5 $) , 敵対的関係を表す整数 $ M $ ($ 1\ \leq\ M\ \leq\ 10000 $) が与えられる。 - $ 2 $ 行目から $ M $ 行は、グループの敵対関係が与えられる。 - $ a_i $, $ b_i $ ($ 1\ \leq\ a_i,\ b_i\ \leq\ N $) はグループ $ a_i $ がグループ $ b_i $ に対して攻撃的であることを表す。 - $ i\ \neq\ j $ ならば、 $ a_i\ \neq\ a_j $ または $ b_i\ \neq\ b_j $ である。 - $ M+2 $ 行目は、あるグループの発言 $ s $ が与えられる。 - $ s $ の文字列長は $ 300 $ 以下である。 - 少なくとも $ 1 $ グループは発言を行った可能性がある。 グループの数が少ない入力 ( $ 1\ \leq\ N\ \leq\ 100 $ ) のみ正解すると、$ 100 $ 点満点に対して部分点として $ 50 $ 点が与えられる。 発言 $ s $ を行った可能性のあるグループの数を、標準出力に $ 1 $ 行で出力せよ。 なお、行の終端には改行が必要である。

Input Format

N/A

Output Format

N/A