Найкращий акумулятор
Limits: 2 sec., 256 MiB
Зеник та Марічка дуже довго вибирали акумулятор, проте так і не змогли зупинитися на єдиному варіанті. Загалом каталог інтернет-магазину акумуляторів містить nn позицій. Оскільки вибрати найкращий акумулятор по інших параметрах Зеник та Марічка не змогли, то вони вирішили вибирати по назві. Кожен акумулятор з каталогу має свою унікальну назву sisi.
Марічка хоче додати свою улюблену літеру до кожної назви акумулятора. Вона хоче вставити її на початок назви, в її кінець, або будь-куди в середину. Зеник хоче, щоб назва акумулятора (з однією доданою Марічкою літерою) була лексикографічно найменшою серед усіх можливих (дивіться розділ Примітки для визначення лексикографічного порядку).
Ваше завдання: сказати який найменший рядок Марічка та Зеник можуть дістати. Тобто, потрібно сказати, який лексикографічно найменший рядок можна дістати, якщо додати до одного із рядків sisi рівно улюблену літеру Марічки.
Input
Перший рядок містить одне ціле число nn — кількість різних акумуляторів.
Другий рядок містить одну літеру латинського алфавіту cc — улюблену літеру Марічки.
Наступні nn рядків містять по одному рядку кожен — назви акумуляторів sisi.
Output
В єдиному рядку виведіть рядок — лексикографічно найменший рядок який можна отримати додаванням до одного з рядків sisi однієї літери cc.
Constraints
1≤n≤1051≤n≤105,
загальна довжина усіх sisi не перевищує 105105,
cc а також усі символи рядків sisi — маленькі літери латинського алфавіту,
усі sisi різні.
Оцінювання задачі складається із наступних блоків:
1 бал — перший приклад з умови,
1 бал — другий приклад з умови,
18 балів — блок тестів у яких 1≤n,|si|≤101≤n,|si|≤10,
40 балів — блок тестів у яких 1≤n≤5001≤n≤500, а також загальна довжина рядків не перевищує 1000,
40 балів — блок тестів у яких 1≤n≤1051≤n≤105, а також загальна довжина рядків не перевищує 105105.
Бали за блок ви отримаєте, лише якщо дасте правильну відповідь на всі тести з блоку.
Samples
Input (stdin) | Output (stdout) |
---|---|
1 d ace | acde |
Input (stdin) | Output (stdout) |
---|---|
4 z abc defg aasdf abcd | aasdfz |
Notes
Рядок ss є лексикографічно меншим за рядок tt, якщо:
рядок ss є коротшим за рядок tt, а також повністю збігається з початком рядка tt такої ж довжини як рядок ss;
у рядку ss перший символ у якому ss та tt відрізняються йде раніше в алфавіті ніж відповідний символ у рядку tt.
Наприклад: abc
<<
abcdefg
, bbacd
<< bbaxyz
.
Лексикографічне порівняння реалізоване оператором <
в
більшості популярних мовах програмування.