'''
[编程题]小易记单词
时间限制:1秒
空间限制:32768K
小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,
小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,
如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。
注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。
输入描述:
输入数据包括三行:
第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔
第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50。
第三行为m个字符串,系统提供的单词,以空格分隔,每个单词的长度小于等于50。
输出描述:
输出一个整数表示小易能获得的分数
示例1
输入
3 4 apple orange strawberry strawberry orange grapefruit watermelon
输出
136
'''
'''
解题思路:用好集合
这道题目思路很简单,用好python的内置的数据结构集合就行了
不过有一个非常恶心的一点就是第四行输入有问题,好像会多输入字符串,需要自己对输入做一个[:m]的切片才能100%通过
'''
'''
代码运行结果:
[编程题]小易记单词
时间限制:1秒
空间限制:32768K
小易参与了一个记单词的小游戏。游戏开始系统提供了m个不同的单词,
小易记忆一段时间之后需要在纸上写出他记住的单词。小易一共写出了n个他能记住的单词,
如果小易写出的单词是在系统提供的,将获得这个单词长度的平方的分数。
注意小易写出的单词可能重复,但是对于每个正确的单词只能计分一次。
输入描述:
输入数据包括三行:
第一行为两个整数n(1 ≤ n ≤ 50)和m(1 ≤ m ≤ 50)。以空格分隔
第二行为n个字符串,表示小易能记住的单词,以空格分隔,每个单词的长度小于等于50。
第三行为m个字符串,系统提供的单词,以空格分隔,每个单词的长度小于等于50。
输出描述:
输出一个整数表示小易能获得的分数
示例1
输入
3 4 apple orange strawberry strawberry orange grapefruit watermelon
输出
136
'''
'''
解题思路:用好集合
这道题目思路很简单,用好python的内置的数据结构集合就行了
不过有一个非常恶心的一点就是第四行输入有问题,好像会多输入字符串,需要自己对输入做一个[:m]的切片才能100%通过
'''
'''
代码运行结果:
答案正确:恭喜!您提交的程序通过了所有的测试用例
'''
n, m = [int(each) for each in input().split()]
Yi_words = set(input().split())
Sys_words = set(input().split()[0:m])
scores = 0
for each in Yi_words:
if each in Sys_words:
scores += len(each)**2
print(scores)