알파카 문장

S를 부분 수열로 포함하는 가장 짧은 팰린드롬 중에서 사전 순으로 K번째인 문자열을 구하고 없으면 NONE을 출력합니다.

보통7동적 계획법문자열조합론아직 제출이 없습니다시간 제한3초메모리 제한256 MB

문제

알파카가 쓰는 문장은 앞에서 읽으나 뒤에서 읽으나 알파벳 배열이 같다. 'Do geese see god?'(dogeeseseegod), 'Amore, Roma.', 'Rise to vote, sir.'가 그런 문장이다.

은기는 알파카 서식지에서 알파카의 소설책을 읽으며 지내고 있었다. 어느 날 알파카들이 땅을 파길래 구덩이를 들여다보았더니 석판이 하나 있었고, 거기에 알파카의 조상이 남긴 고대 문장이 적혀 있었다. 오랜 세월에 몇 글자는 지워졌지만 남아 있는 글자의 순서는 그대로였다. 은기는 지워진 자리에 알파벳 소문자를 끼워 넣어 원래 문장을 복원하려고 한다.

즉 복원한 문장은 앞에서 읽으나 뒤에서 읽으나 같아야 하고, 남아 있는 문자열 SS를 부분 수열로 포함해야 한다.

알파카는 간결한 문장을 좋아하므로 복원한 문장은 가능한 한 짧아야 한다. 또 방사성 연대 측정으로 이 문장을 서열 KK등인 알파카가 썼다는 사실이 밝혀졌으므로, 최소 길이인 문장 중에서 사전 순으로 KK번째인 것을 골라야 한다.

은기를 도와 고대 알파카 문장을 복원하는 프로그램을 작성하라.

입력

입력은 두 줄로 이루어진다.

첫째 줄에 남아 있는 문자열 SS가 주어진다. SS는 알파벳 소문자로만 이루어지고, 길이는 11 이상 20002000 이하이다.

둘째 줄에 알파카의 서열 KK가 주어진다. KK1K10181 \le K \le 10^{18}을 만족하는 정수이다.

출력

첫째 줄에 복원한 알파카 문장을 출력한다.

최소 길이인 문장의 개수가 KK보다 적으면 NONE을 출력한다.