最长回文子序列
Background
小 Z 上英语课思考数学问题被英语老师发现啦~
英语老师:「你这么爱胡思乱想我问你一道英语题吧」
小 Z 想跑,但是已经来不及了。
英语老师:「我们定义一个回文串是正方读起来相同的字符串」
小 Z:「这个简单,不就是像 "abba" "aba"这样的吗」
英语老师:「现在给你一个长度为 n 的字符串,要你求出他的最长回文子序列」
小 Z:「子序列是不连续的吧? 好的我知道了」
小 Z 轻松的解决了这个问题,并把他修改了一下交给你。
Description
现在一个字符串变成了 m 个数字,会魔法的小 Z 可以把一个数字 x 根据变换规则变成 y,给定所有的变换规则,要你求出这个数字串的最长回文子序列。
Format
Input
第一行输入 3 个正整数 n,k 和 m,k 是转换规则的个数。
第二行开始的 k 行,每行两个正整数 x 和 y,表示数字 x 可以变成数字 y, 并且数字 y 可以变成数字 x。注意,如果数字 x 可以变成数字 y,并且数字 y 可以变成数字 z,那么数字 x 也可以便成数字 z。x 可能等于 y,同一对(x, y)可能重复出现。
最后一行输入 m 个正整数,表示题目中所提的数字串,每个数 ≤ n。
Output
输出一行一个数表示答案。
Sample 1
Input
10 7 6
1 3
5 7
3 5
2 6
2 4
8 4
10 9
1 9 2 3 10 3
Output
5
Limitation
对于 20% 的数据:n,k,m ≤ 10;
对于 40% 的数据:n,k,m ≤ 200;
对于 100% 的数据:n ≤ 10^5,k ≤ 10^6,m ≤ 10^3,1 ≤ x,y ≤ n。