만드는 중입니다

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

연금술

시간 제한1초메모리 제한64 MB

요약
여러 물질을 보유한 상태에서만 일어나는 반응들이 주어질 때, 요스코가 처음 가진 물질에서 출발해 결국 얻을 수 있는 모든 물질을 구한다.
난이도

보통10점 중 7점

유형
그래프, BFS, 해시맵, 구현
정답자
아직 제출이 없습니다

문제

연금술사들이 금을 만들려고 애쓰던 시절, 세상에 알려진 물질은 모두 NN가지였고 각 물질에는 11번부터 NN번까지 번호가 붙어 있었다. 오랜 연구 끝에 연금술사들은 연금 반응의 목록을 얻었다. 반응 하나는 물질 집합 {X1,X2,…,XL}\{X_1, X_2, \dots, X_L\}을 다른 물질 집합 {Y1,Y2,…,YR}\{Y_1, Y_2, \dots, Y_R\}로 바꾼다. 예를 들어 물질 집합 {1,4,5}\{1, 4, 5\}가 한 번 반응해 새로운 물질 집합 {2,6}\{2, 6\}을 만든다.

요슈코는 현대의 연금술사이고, 서로 다른 물질 A1,A2,…,AMA_1, A_2, \dots, A_M을 가지고 있다. 각 물질의 양은 무한하다. 반응은 왼쪽 물질을 모두 가지고 있을 때만 일으킬 수 있고, 한 번 일으키면 오른쪽 물질을 모두 얻는다. 반응에 쓴 물질은 줄지 않으며, 새로 얻은 물질도 다음 반응에 쓸 수 있다.

요슈코가 옛 연금술사들의 반응 목록으로 만들어 낼 수 있는 물질을 모두 구하라.

입력

첫째 줄에 정수 NN과 MM이 주어진다. (1≤M≤N≤1000001 \le M \le N \le 100000)

둘째 줄에 요슈코가 처음에 가진 물질의 번호 AiA_i가 MM개 주어진다. (1≤Ai≤N1 \le A_i \le N)

셋째 줄에 알려진 반응의 개수 KK가 주어진다. (1≤K≤1000001 \le K \le 100000)

이어지는 3K3K개 줄에 반응 목록이 주어진다. 반응 하나는 세 줄로 설명한다.

  • 첫째 줄에 정수 LL과 RR이 주어진다. (1≤L,R≤N1 \le L, R \le N)
  • 둘째 줄에 서로 다른 정수 XiX_i가 LL개 주어진다. (1≤Xi≤N1 \le X_i \le N)
  • 셋째 줄에 서로 다른 정수 YiY_i가 RR개 주어진다. (1≤Yi≤N1 \le Y_i \le N)

이 반응은 물질 집합 {X1,X2,…,XL}\{X_1, X_2, \dots, X_L\}을 물질 집합 {Y1,Y2,…,YR}\{Y_1, Y_2, \dots, Y_R\}로 바꾼다.

모든 LL의 합은 100000100000을 넘지 않는다. 모든 RR의 합도 100000100000을 넘지 않는다.

출력

첫째 줄에 요슈코가 얻을 수 있는 물질의 개수 XX를 출력한다.

둘째 줄에 그 물질의 번호 BiB_i를 오름차순으로 정렬해 공백으로 구분하여 XX개 출력한다. 처음부터 가진 물질도 얻을 수 있는 물질로 센다.

힌트

첫 번째 예제에는 반응이 두 개 있다. 첫 번째 반응은 물질 집합 {1,2}\{1, 2\}를 {3}\{3\}으로 바꾸고, 두 번째 반응은 {1,3}\{1, 3\}을 {4}\{4\}로 바꾼다. 요슈코가 처음에 가진 물질은 {1,2}\{1, 2\}이므로 첫 번째 반응으로 물질 33을 얻어 {1,2,3}\{1, 2, 3\}이 되고, 이어서 두 번째 반응으로 물질 44도 얻는다.

두 번째 예제에서 요슈코가 처음에 가진 물질은 {1,4,5}\{1, 4, 5\}다. 두 번째 반응으로 물질 66을 얻고, 그다음 세 번째 반응으로 물질 22를 얻는다. 첫 번째 반응은 물질 33이 없어서 쓸 수 없다.

예제2

  1. 예제 1

    입력
    4 2
    1 2
    2
    2 1
    1 2
    3
    2 1
    1 3
    4
    
    예상 출력
    4
    1 2 3 4
    
  2. 예제 2

    입력
    6 3
    1 4 5
    3
    3 2
    2 3 4
    1 6
    1 3
    4
    1 5 6
    1 1
    6
    2
    
    예상 출력
    5
    1 2 4 5 6