世界正处于灭绝的边缘。一种变异病毒威胁着要摧毁所有生物。作为最后的希望,一个由超级聪明的科学家组成的团队(当然也包括你)目前正在研发抗病毒药物。不幸的是,你们团队无法及时分析 DNA。他们测序了 $n$ 段病毒 DNA,需要将它们与 $n$ 条现有的抗病毒药物链进行匹配。作为算法专家,你需要实现一个专门的程序来解决这个问题。你的方法必须足够快——时间不多了!
首先,你需要确定每个 DNA 序列的重复得分。序列 $s$ 的重复得分等于最短序列 $u$ 的长度,使得 $s$ 等于 $u$ 的 $k$ 倍重复,其中 $k$ 为某个正整数。例如,ATGATG 的重复得分是 3,因为它可以通过重复 ATG 两次得到。另一方面,ATATA 的重复得分是 5,因为它不能由任何真子串重复得到。
在获得所有序列的得分后,你需要将 $n$ 条抗病毒序列与 $n$ 条病毒序列进行匹配,以使病毒造成的损害最小化。当两个序列匹配时,病毒造成的损害等于两个重复得分之差的平方。例如,将抗病毒序列 ATGATG 与病毒序列 ATATA 匹配会造成 $(3 - 5)^2 = 4$ 个单位的损害。
如果你以最优方式匹配这些 DNA 序列,那么所有匹配对的病毒造成的总损害最小是多少?
输入格式
输入包含: 一行包含一个整数 $n$ ($1 \le n \le 50$),表示病毒和抗病毒 DNA 序列的数量。 $n$ 行,每行一个病毒 DNA 序列。 * $n$ 行,每行一个抗病毒 DNA 序列。
每个 DNA 序列都是一个非空字符串,长度不超过 250,由小写字母 a-z 和大写字母 A-Z 组成。
输出格式
输出一个整数,即最小总损害。
样例
样例输入 1
2 TTTTTT TATG TATATA AAAGAAAG
样例输出 1
1
样例输入 2
3 abcdef aaa bab AbAb xyzxyz X
样例输出 2
10