JAG-channel II
시간 제한3초메모리 제한256 MB
위로 이동하는 목록 규칙 아래 기록된 스레드 선택 순서와 모순되지 않는 사전 순 최소 게시 순서를 찾습니다.
문제
JAG는 알고리즘 대회 문화를 넓히는 데 힘쓰는 회원 명의 모임이다. 회원들은 JAG-channel이라는 게시판에서 매일 이야기를 나눈다. 게시판에는 스레드가 여러 개 있고, 목록은 마지막 글이 올라온 시각이 늦은 순서로 항상 정렬되어 있다. 그래서 누군가 어떤 스레드에 글을 남기면 그 스레드는 곧바로 목록 맨 위로 올라간다.
어느 날 밤 회원 명이 각각 스레드를 하나씩 만들었다. 회원은 앞에서부터 대문자 개로 구분하고, 스레드는 그 스레드를 만든 회원의 글자로 나타낸다. 다음 날 아침 각 회원은 전날 밤에 만들어진 스레드 중 서로 다른 개에 한 번씩 글을 남겼다. 회원들은 속도를 중요하게 여겨서 목록을 맨 위에서 아래로 훑어보다가 마음에 드는 스레드를 만나면 그 자리에서 바로 글을 남겼다. 회원마다 글을 남긴 시간대가 달라서, 한 회원이 개의 글을 남기는 동안 다른 회원의 글은 하나도 올라오지 않았다.
각 회원이 어떤 스레드에 몇 번째로 글을 남겼는지는 알지만, 밤에 만들어진 스레드가 처음에 어떤 순서로 놓여 있었는지는 모른다. 목록 순서가 글이 올라올 때마다 바뀌므로, 회원 순서 중에는 먼저 글을 남긴 회원 때문에 기록된 위에서 아래로의 순서를 만들 수 없어 불가능한 것도 있다. 회원들이 글을 남긴 순서로 가능한 것 중 사전순으로 가장 앞서는 것을 구하여라.
입력
첫 줄에 정수 과 가 공백 하나로 구분되어 주어진다 (, ).
다음 개의 줄에는 서로 다른 대문자 개로 이루어진 문자열이 한 줄에 하나씩 주어진다. 번째 줄의 번째 문자는 번째 회원이 번째로 글을 남긴 스레드를 뜻한다. 스레드는 그 스레드를 만든 회원의 글자로 나타내므로, 예를 들어 'B'는 두 번째 회원 B가 만든 스레드다.
가능한 회원 순서가 적어도 하나 있음이 보장된다.
출력
가능한 회원 순서 중 사전순으로 가장 앞서는 것을 대문자 개로 이루어진 문자열 한 줄로 출력한다. 번째 문자는 번째 시간대에 글을 남긴 회원을 뜻한다.