Play Onwards
면접 대비시간 제한1초메모리 제한512 MB
단어들을 비어 있지 않은 두 목록으로 나누어, 같은 목록 안에서 길이 K인 공통 부분 문자열을 공유하는 단어 쌍이 없게 합니다. 불가능하면 No를 출력합니다.
Play Onwards
서훈이는 용훈이의 아재개그 때문에 고통받고 있다. 다음은 서훈이와 용훈이의 대화 일부이다.
용훈 : (휘파람을 불 듯이) 장미란에게 장미란 무엇일까~?
서훈 : (…)
서훈 : (간절하게) 용훈이형, 제발 그러지 좀 마.
매일 용훈이의 언어폭력(?)에 시달리던 서훈이는 어느 날 용훈이와 함께 새로운 외국어를 배우기로 했다. 교재를 살펴보니 서훈이가 익혀야 할 단어는 총 개였다.
교재에 나오는 순서대로 개의 단어를 외우면 좋겠지만, 서훈이는 외국어를 공부하는 동안 용훈이가 배운 단어로 아재개그를 할까 봐 경계하고 있다.
용훈이가 두 단어로 아재개그를 하려면, 두 단어에서 길이가 인 연속한 부분문자열을 하나씩 골라 서로 같게 만들 수 있어야 한다. 예를 들어 jangmiran과 jangmi는 길이 6인 문자열 jangmi를 공통으로 포함하므로, 가 6 이하이면 용훈이는 두 단어로 아재개그를 할 수 있다. 반면 ant와 ainta는 nt를 공통으로 포함하지만 ant는 ainta에 연속한 형태로 들어 있지 않다(ant는 ainta의 글자를 골라 만들 수 있지만 연속하지 않다). 따라서 이면 용훈이는 두 단어로 아재개그를 할 수 없다.
서훈이는 단어를 두 개의 단어장으로 나누려고 한다. 모든 단어는 두 단어장 중 한 곳에만 들어가야 하고, 각 단어장에는 단어가 최소 하나 있어야 한다.
서훈이는 용훈이가 두 단어장 중 어느 쪽을 골라도 그 단어장의 단어로 아재개그를 할 수 없게 만들고자 한다. 서훈이를 도와, 용훈이가 아재개그를 할 수 없도록 단어장을 짜 주는 프로그램을 작성하여라.
입력
첫 번째 줄에 단어의 수 과 용훈이가 아재개그를 하기 위해 필요한 최소 유사도 가 주어진다. (, )
두 번째 줄부터 개의 줄에 단어장에 있는 단어들의 알파벳 발음이 순서대로 주어진다. 단어는 영어 소문자로만 이루어진 길이 1 이상 20 이하인 문자열이다.
서훈이와 용훈이가 동음이의어를 한 번에 모두 익히는 것은 아니므로, 같은 단어가 단어장에 여러 번 나타날 수 있다.
출력
서훈이가 단어장을 어떻게 만들어도 용훈이가 아재개그를 할 수 있다면 첫 번째 줄에 No만 출력한다. 그렇지 않다면 첫 번째 줄에 Yes를 출력하고, 이어서 줄에 걸쳐 각 단어가 들어간 단어장 번호를 출력한다. 단어를 첫 번째 단어장에 넣어야 하면 1을, 두 번째 단어장에 넣어야 하면 2를 출력한다.
답이 여러 개이면 그중 아무거나 출력해도 정답으로 인정한다.