록 밴드
시간 제한4초메모리 제한512 MB
M명의 멤버가 S곡 전체에 순위를 매긴다. 어떤 곡을 연주하면 그 곡보다 선호하는 곡도 모두 연주해야 한다는 조건을 만족하는 가장 짧은 셋리스트를 찾는다.
문제
방과 후마다 너와 친구들은 모여 밴드 연습을 한다. 지난 몇 달 동안 밴드는 아주 많은 곡을 연습했고, 이제 처음으로 관객 앞에서 공연할 때가 됐다. 공연을 하려면 먼저 세트 리스트를 정해야 한다.
밴드 멤버는 저마다 음악 취향이 다르고, 다들 까다롭다. 어떤 멤버가 곡 를 연주하려면 그 멤버가 보다 더 좋아하는 곡을 모두 함께 연주해야 한다. 이 조건은 모든 멤버와 모든 곡 에 대해 성립해야 한다. 또한 적어도 한 곡은 연주해야 한다.
주최 측은 곡이 너무 많아지는 것을 원하지 않는다. 그래서 조건을 만족하는 세트 리스트 중에서 길이가 가장 짧은 것을 골라야 한다. 밴드의 비공식 리더인 너가 그런 세트 리스트를 찾는다.
입력
첫째 줄에 두 정수 과 가 주어진다. , 이고 이다. 은 밴드 멤버 수, 는 곡 수다.
다음 개 줄에는 각각 개의 정수가 주어진다. 번째 줄은 번째 멤버의 선호 목록이고, 가장 좋아하는 곡부터 가장 덜 좋아하는 곡까지 순서대로 나열된다. 곡 번호는 부터 까지이므로 각 줄은 부터 까지의 순열이다.
선호 목록이 완전히 같은 두 멤버는 없다.
출력
가장 짧은 세트 리스트를 다음 형식으로 출력한다.
- 첫째 줄에 가장 짧은 세트 리스트의 길이 을 출력한다.
- 둘째 줄에 연주할 곡 번호 개를 오름차순으로 정렬해 공백 하나로 구분해 출력한다.