패턴이 되는 단어 w 와, 비어 있지 않은 단어들로 이루어진 유한 수열 C=(w1,…,wk) 가 주어진다. 수열 C 에서 몇 개의 단어를 골라, 그 단어들이 C 안에서 나타나는 순서 그대로(즉 인덱스가 순증가하도록) 이어 붙였을 때 그 결과가 패턴 w 와 같아지도록 만들고 싶다. 각 단어는 많아야 한 번만 사용할 수 있고, 고른 인덱스들은 반드시 강한 증가(strictly increasing) 순서여야 한다.
패턴 w 와 C 의 각 단어는 모두 소문자 영어 알파벳('a'부터 'z'까지)으로만 이루어지며, 발음 부호는 없고 길이는 각각 최대 150이다. 단어의 개수 k 는 1≤k≤200 을 만족한다.
예를 들어 패턴 rytter 는 C=(ry,r,yt,y,tt,t,e,te,r,er) 에서 인덱스 (2, 4, 5, 7, 9) 의 단어를 골라 r + y + tt + e + r 로 만들 수 있다. (1, 5, 10) 의 단어를 골라 ry + tt + er 로 만드는 것도 같은 패턴을 얻는 또 다른 방법이다.
우리는 두 가지가 궁금하다. 첫째, 그런 선택이 몇 가지나 있는가. 둘째, 그 모든 선택 중에서 사전순으로 가장 작은 선택은 무엇인가.
다음을 수행하는 프로그램을 작성하라.
NIE 한 단어를 출력한다.인덱스 수열의 사전순 비교는 원소를 앞에서부터 하나씩 비교하여 정한다. 두 수열이 처음으로 달라지는 위치에서 더 작은 인덱스를 가진 수열이 더 작고, 한 수열이 다른 수열의 진짜 앞부분(proper prefix)이면 짧은 쪽이 더 작다.
다음을 출력한다.
NIE 한 단어만 출력한다.