연금술

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

보통7그래프BFS해시맵구현아직 제출이 없습니다시간 제한1초메모리 제한64 MB

문제

연금술사들이 금을 만들려고 애쓰던 시절, 세상에 알려진 물질은 모두 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을 가지고 있다. 각 물질의 양은 무한하다. 반응은 왼쪽 물질을 모두 가지고 있을 때만 일으킬 수 있고, 한 번 일으키면 오른쪽 물질을 모두 얻는다. 반응에 쓴 물질은 줄지 않으며, 새로 얻은 물질도 다음 반응에 쓸 수 있다.

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

입력

첫째 줄에 정수 NNMM이 주어진다. (1MN1000001 \le M \le N \le 100000)

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

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

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

  • 첫째 줄에 정수 LLRR이 주어진다. (1L,RN1 \le L, R \le N)
  • 둘째 줄에 서로 다른 정수 XiX_iLL개 주어진다. (1XiN1 \le X_i \le N)
  • 셋째 줄에 서로 다른 정수 YiY_iRR개 주어진다. (1YiN1 \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이 없어서 쓸 수 없다.