만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

리얼리티 쇼

시간 제한2초메모리 제한512 MB

요약
각 배심원의 두 소망이 모두 이루어지는 사람 수가 최대가 되도록 탈락자를 고르는 문제입니다.
난이도

보통10점 중 7점

유형
그래프
정답자
아직 제출이 없습니다

문제

Život na kavi는 국회의원들이 경쟁하는 인기 리얼리티 쇼다. 참가자는 빨간 팀과 검은 팀으로 나뉘고, 매주 일정 수의 참가자가 쇼에서 탈락한다.

탈락은 심사위원단이 정한다. 각 심사위원은 종이 한 장에 쇼에 남아야 한다고 생각하는 참가자 한 명의 이름과 떠나야 한다고 생각하는 참가자 한 명의 이름을 적는다. 심사위원들은 부패해 있어서, 같은 종이에 적힌 두 이름이 같은 팀에 속하는 경우는 없다.

심사위원 한 명은 두 바람이 모두 이루어졌을 때 행복하다. 주말에 그가 남기를 바란 참가자가 쇼에 남고, 떠나기를 바란 참가자가 탈락하면 된다. 행복한 심사위원의 수가 가능한 한 최대가 되도록 탈락할 참가자의 집합을 정하라.

입력

첫 줄에 빨간 팀 인원을 나타내는 자연수 nn (1≤n≤2501 \le n \le 250)이 주어진다. 이어서 nn개의 줄에 빨간 팀 참가자의 이름이 한 줄에 하나씩 주어진다.

다음 줄에는 검은 팀 인원을 나타내는 자연수 mm (1≤m≤2501 \le m \le 250)이 주어진다. 이어서 mm개의 줄에 검은 팀 참가자의 이름이 한 줄에 하나씩 주어진다.

다음 줄에는 심사위원 수를 나타내는 자연수 kk (1≤k≤10001 \le k \le 1000)가 주어진다. 이어서 kk개의 줄에 심사위원 한 명당 두 이름이 공백으로 구분되어 주어진다. 첫 번째 이름은 남아야 한다고 생각하는 참가자이고, 두 번째 이름은 떠나야 한다고 생각하는 참가자이다.

모든 이름은 서로 다르며, 최대 10자의 영어 소문자로 이루어진다.

출력

첫 줄에 쇼를 떠나는 참가자의 수 xx를 출력한다. 이어서 xx개의 줄에 떠나는 참가자의 이름을 순서에 상관없이 한 줄에 하나씩 출력한다.

예제2

  1. 예제 1

    입력
    2
    ankica
    brankica
    1
    mirko
    3
    ankica mirko
    brankica mirko
    mirko brankica
    
    예상 출력
    1
    mirko
    
  2. 예제 2

    입력
    3
    ante
    branko
    simic
    3
    ivan
    goran
    kovacic
    5
    ante kovacic
    goran ante
    kovacic simic
    branko kovacic
    simic goran
    
    예상 출력
    2
    goran
    kovacic