불만 많은 손님
시간 제한2초메모리 제한1024 MB
주문 기록과 일부만 보이는 주문서가 주어질 때, 특정 테이블의 주문서가 모두 해당 메뉴인지 판정하고 아니면 뒤집어 볼 최소 주문서를 찾습니다.
문제
Diana는 Batavian Authentic Prestigious Cuisine의 주방장입니다. 모든 주문은 중앙 컴퓨터에 기록됩니다. 주방을 정리하기 위해 주문된 메뉴는 각각 별도의 주문표에도 인쇄됩니다. Diana는 각 주문표 뒷면에 테이블 번호를 적어, 서빙하는 직원이 음식을 어디로 가져갈지 확인할 수 있게 합니다. 주문표의 조리가 끝나면 Diana는 이를 게시판에 붙입니다. 같은 테이블이 같은 메뉴를 여러 번 주문할 수 있으므로 중복된 주문표가 있을 수 있습니다.
영업 중반에 불만이 많은 손님이 항의합니다. "몇 시간이나 기다렸는데 지금까지 토마토 수프만 나왔어요! 좀 서둘러 주시겠어요?" 식당의 평판이 걸려 있으므로 Diana는 즉시 대응해야 합니다. 하지만 과거에 일부 손님이 빠른 서빙을 받으려고 거짓말을 한 적이 있으므로, 주방 직원에게 지시하기 전에 이 항의를 먼저 검증해야 합니다.
게시판은 항상 최신 상태이므로, 검증은 관련 주문표를 확인하는 일입니다. 와 을 항의에 담긴 테이블 번호와 메뉴라고 합시다. Diana가 검증하려는 주장은 "테이블 의 게시된 모든 주문표는 메뉴 에 해당한다"입니다. 테이블 에 완료된 주문표가 없으면 이 주장은 참으로 봅니다. 손님이 잘못 말했을 수도 있지만, 그래도 특별한 관심을 받을 자격은 있습니다.
게시판에서는 각 주문표의 한쪽 면, 즉 메뉴 또는 테이블 번호만 보입니다. Diana에게는 수백 장의 주문표를 뒤집을 시간이 없습니다. 중앙 컴퓨터와 대조하면 안전하게 무시할 수 있는 주문표도 있습니다. 뒤집어야 하는 게시된 주문표의 최소 집합을 구하십시오. 또는 주문표를 한 장도 뒤집지 않고 주장을 증명하거나 반증할 수 있는지 판단하십시오. Diana는 뒤집기 시작하기 전에 어느 주문표를 뒤집을지 정해야 합니다. 그녀는 즉석에서 추론할 여유가 없기 때문입니다.
입력
입력은 다음과 같습니다.
- 첫 줄에 정수 과 가 주어집니다 (). 은 컴퓨터에 기록된 주문 수이고, 는 게시된 주문표 수입니다.
- 둘째 줄에는 컴퓨터에 기록된 주문을 나타내는 문자열 개가 주어집니다. 각 문자열은 영문 대문자 한 글자(메뉴,
A-Z)와 숫자 한 글자(테이블 번호,0-9)로 이루어집니다. - 셋째 줄에는 게시된 주문표를 나타내는 문자 개가 주어집니다. 각 문자는 영문 대문자 또는 숫자입니다.
- 넷째 줄에는 숫자 (
0-9)와 영문 대문자 (A-Z)이 주어지며, 주장 "테이블 의 게시된 모든 주문표는 메뉴 에 해당한다"를 지정합니다.
게시된 주문표는 컴퓨터에 있는 주문의 (부분집합에) 대응한다고 보장됩니다.
출력
주문표를 한 장도 뒤집지 않고 주장이 명확히 참 또는 거짓임을 증명할 수 있으면 각각 true 또는 false를 출력합니다. 그렇지 않으면 뒤집어야 하는 게시된 주문표의 최소 개수를 출력하고, 이어서 그 주문표들의 1부터 시작하는 번호를 순서에 상관없이 출력합니다.