#loj5636. 「PA 2015 Final」Kolorowania
「PA 2015 Final」Kolorowania
[AdditionalFile5636.zip](file://AdditionalFile5636.zip?type=additional_file)
#5636. 「PA 2015 Final」Kolorowania
标签: 传统 | 时间限制: 10000 ms | 内存限制: 256 MiB |
题目描述
题目译自 PA 2015 Final Kolorowania
设 为一个无向图。如果对于图中的每一条边 ,都有 ,则函数 被称为一个着色。
如果对于每个 ,都有 ,则称着色 是漂亮的。换句话说,漂亮的着色只使用从 到 的整数作为颜色。
如果对于每个 ,都存在一个 (且 )使得 ,则称着色 是聪明的。换句话说,聪明的着色中,每种被使用的颜色都至少在两个不同的顶点上出现。
Bajtazar 正在为他的图寻找一种合适的着色。他曾经找到过一种漂亮的着色 ,但他觉得它太简单且缺乏挑战性。另一次,他成功找到了一种聪明的着色 ,但过了一段时间后,他已经厌倦得不想再看到它了。
Bajtazar 已经不抱希望能在有生之年遇到一种既漂亮又聪明的着色了。你能给他一个惊喜并找到这样一种着色吗?
输入格式
输入的第一行包含三个整数 $(1 \leq k \leq n \leq 200000, 0 \leq m \leq 200000)$。其中 定义了哪些着色被视为漂亮的,而 和 分别是 Bajtazar 图中顶点的数量和边的数量。图的顶点编号为从 到 。
接下来的 行描述了图的边。其中的第 行包含两个整数 ,表示编号为 和 的顶点之间存在一条边。输入中不会出现重复的边 。
最后两行分别描述了着色 和 。每个着色的描述由 个不大于 的正整数组成:其中的第 个数代表第 号顶点的颜色。保证 是漂亮的,且 是聪明的。
输出格式
如果存在一种既聪明又漂亮的着色,请在第一行输出 TAK,并在第二行输出 个整数来描述这种着色。输出格式应与输入中的着色描述格式相同。
如果不存在这样的着色,请在输出 NIE。
样例
输入
8 7 3
1 2
2 3
3 4
1 5
1 6
1 7
1 8
1 2 3 2 2 2 2 2
1 2 4 1 2 3 4 3
输出
TAK
1 2 1 2 3 3 3 3