#arc0303. [arc030_3]有向グラフ

[arc030_3]有向グラフ

问题描述

给定一个由 nn 个顶点和 mm 条边组成的有向图。nn 个顶点用从 11nn 不同的整数进行编号。每个顶点上都有一个小写字母 az

你想要从任意一个顶点开始,以任意顺序访问每个顶点,从而收集恰好 kk 个字母。可以多次访问同一个顶点,并在任何时刻收集该顶点上的字母,但每个字母只能收集一次。如果不需要,则无需收集。

为了避免过于无聊的收集方式,你决定按照回收这些 kk 个字母的顺序,使其按字典序最小的方式进行收集。

请输出按照这样的回收方法,以收集顺序输出的 kk 个字母。如果无法找到收集 kk 个字母的方法,请输出 -1


输入

输入通过标准输入给出,具体格式如下:

nn mm kk c1c_1 c2c_2cnc_n a1a_1 b1b_1 a2a_2 b2b_2 : ama_{m} bmb_{m}

  • 11 行为 nnmmkk,分别表示顶点数 n(1n300)n (1 ≤ n ≤ 300)、边数 m(0m1000)m (0 ≤ m ≤ 1000) 和要收集的字母数 k(1kn)k (1≤k≤n)
  • 22 行为 nn 个小写字母 cic_i( az),表示每个顶点上的字母,以空格分隔。
  • 33 行到第 m+2m+2 行,给出 mm 条边,每行两个整数 aia_ibi(1ai,bin)b_i (1≤a_i,b_i≤n),表示第 ii 条边由顶点 aia_i 连接到顶点 bib_i

输入图中无自环和重复边,但可能存在反向边。同时,无法保证图是连通的。

输出

输出按照回收顺序,使得字典序最小的 kk 个字母,每个字母之间没有空格。如果无法找到收集 kk 个字母的方法,请输出 -1。记得输出换行符。


示例1


4 4 3
a b b a
1 2
2 3
3 1
4 3

输出样例1


aab

对应的图示如下。通过移动顶点 44331122,我们可以按顺序收集顶点 44 上的字母 a、顶点 11 上的字母 a,以及顶点 22 上的字母 b,这样的收集顺序是字典序最小的答案。


示例2


5 4 4
d a b c a
1 2
2 3
3 4
2 5

输出样例2


dabc

示例3


5 4 3
d a b c a
1 2
2 3
3 4
2 5

输出样例3


abc

示例4


3 0 2
a b c

输出样例4


-1

有三个孤立的顶点,并且无论从哪个顶点开始,都无法收集到恰好 22 个字母。