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