해시함수는 임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수이다.
특정한 배열의 인덱스를 입력하고자하는 데이터의 값을 이용해 저장하거나 찾을 수 있다.
해시함수는 암호화만 가능하고 복호화는 불가능한 단방향 암호화 기법으로 해시를 만든다.
해시함수는 매우 빠른 처리속도가 특징이다.

키 : 매핑 전의 데이터 값
해싱 : 매핑하는 과정
해시값 : 매핑 후의 데이터 값
해시 테이블 : 해시 값에 의해 직접 접극이 가능한 데이터 구조
슬롯 : 한개의 데이터를 저장할 수 있는 공간
파이썬에서는 dictionary로 구현한다.

딕셔너리의 시간 복잡도는 O(1)로 원소가 많아질수록 삽입, 삭제, 탐색속도가 빠르다.
https://www.acmicpc.net/problem/1764

n, m = map(int, input().split())
hear = {}
see = {}
hear_see = []
for i in range(n):
hear[input()] = i
for i in range(m):
see[input()] = i
for i in see:
if i in hear:
hear_see.append(i)
print(len(hear_see))
hear_see = sorted(hear_see)
for i in hear_see:
print(i)