Анастасія має рядок ~s~ довжини ~n~, і як велика любителька структури даних ~set~ вона додала всі непусті підрядки рядка ~s~ в ~set~.
Одного разу, її попросили сказати ~k~-тий елемент в ~set~-і, і вона відповіла! Але їй стало цікаво, чи зможете ви це зробити?
Якщо ~k~-тий елемент не існує виведіть "Not exist", без лапок.
Пригадаємо, що ~set~ — це структура даних яка містить тільки унікальні елементи в порядку їхнього зростання.
Підрядок рядка ~s~ — це рядок, що складається з одної або декількох послідовних літер з рядка ~s~, наприклад, рядки "ab", "abc" і "b" є підрядками рядка "abc", в той час як "acb" і "ac" — не є. Будь-який рядок є підрядком самого себе.
Input
В першому рядку задано два чиcла ~n,~ ~k~ ~(1 \le n \le 10^5,~ ~1\le k \le min(n*(n + 1),~ ~10^9))~ — довжина рядка, а також номер елемент який вам слід знайти.
В наступному рядку дано рядок ~s~ довжини ~n~.
Output
Виведіть ~k~-тий по порядку рядок в ~set~-і.
Якщо ~k~-тий елемент не існує виведіть "Not exist", без лапок.
Sample Input 1
4 2
aaba
Sample Output 1
aa
Notes
Якщо виписати не пусті, унікальні підрятки рядка "aaba" в порядку зростання, то це буде "a", "aa", "aab", "aaba", "ab", "aba", "b", "ba".
Коментарі