범죄자

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

바이트버그는 강가에 자리 잡은 마을이다. 강을 따라 집 nn채가 늘어서 있고, 하류 방향으로 1번부터 nn번까지 번호가 붙어 있다. 얼마 전 위험한 강도 비티와 바이티가 이 마을에 자리를 잡았다.

두 사람의 습격은 늘 같은 방식으로 진행된다. 각자 자기 집에서 나와 상대방 쪽으로 걸어가고, 도중에 절대 되돌아가지 않는다. 비티는 하류 방향(번호가 커지는 쪽)으로, 바이티는 상류 방향(번호가 작아지는 쪽)으로 간다. 서로 만나기 전까지 각자 가는 길에 있는 집 몇 채를 골라 털고, 마지막에 한 집에서 만나 장물을 나눈다. 만나는 그 집도 턴다.

탐정 바이토니는 두 강도가 색이 같은 집에 산다는 사실을 알아냈지만, 그 색이 무엇인지는 모른다. 방금 익명의 제보가 들어왔다. 제보자는 어느 집이 털리는지는 말하지 않고 털리는 집의 색만 알려주었다. 두 강도는 미신을 믿어서 각자 같은 색의 집은 많아야 한 번만 턴다. 강도 자신의 집은 털리지 않으므로, 사는 집의 색이 털리는 집의 색과 같아도 된다.

바이토니를 도와 두 강도가 만날 수 있는 집을 모두 찾아라.

입력

첫째 줄에 집의 수 nn과 집 색의 수 kk가 공백을 사이에 두고 주어진다 (3n10000003 \le n \le 1\,000\,000, 1k10000001 \le k \le 1\,000\,000, knk \le n). 색에는 1번부터 kk번까지 번호가 붙어 있다.

둘째 줄에 정수 nnc1,c2,,cnc_1, c_2, \dots, c_n이 공백을 사이에 두고 주어진다 (1cik1 \le c_i \le k). cic_iii번 집의 색이다.

셋째 줄에 비티가 터는 집의 수 mm과 바이티가 터는 집의 수 ll이 공백을 사이에 두고 주어진다 (1m,ln1 \le m, l \le n, m+ln1m + l \le n - 1).

넷째 줄에 서로 다른 정수 mmx1,x2,,xmx_1, x_2, \dots, x_m이 공백을 사이에 두고 주어진다 (1xik1 \le x_i \le k). 비티가 터는 순서대로 나열한 집의 색이며, 비티 자신의 집은 들어 있지 않다.

다섯째 줄에 서로 다른 정수 lly1,y2,,yly_1, y_2, \dots, y_l이 공백을 사이에 두고 주어진다 (1yik1 \le y_i \le k). 바이티가 터는 순서대로 나열한 집의 색이며, 바이티 자신의 집은 들어 있지 않다. xm=ylx_m = y_l이고, 이 색이 두 사람이 만나 장물을 나누는 집의 색이다.

출력

첫째 줄에 위 조건을 지키면서 두 강도가 만날 수 있는 집의 수를 출력한다. 둘째 줄에 그 집의 번호를 증가하는 순서로 공백 하나씩을 사이에 두고 출력한다. 만날 수 있는 집이 하나도 없으면 첫째 줄에 0을 출력하고 둘째 줄은 비워 둔다.

설명

첫 번째 예제에서 두 강도는 색이 2인 집(비티는 1번이나 4번, 바이티는 15번)에 살 수도 있고, 색이 6인 집(비티는 3번, 바이티는 14번)에 살 수도 있다. 비티는 1번에 살든 4번에 살든 5번 집(색 4)과 6번 집(색 7)을 턴 다음 7번, 8번, 10번(모두 색 3) 가운데 한 곳으로 갈 수 있다. 바이티는 12번 집(색 5)을 턴 다음 그 집에서 비티를 만난다. 아래 그림은 비티가 1번 집에 살고 두 사람이 8번 집에서 만나는 경우이다.