Сакурако прибирає в кімнаті. Він знайшов словник, який містить стрічок. Однак цей словник є особливим, і наявність стрічки в словнику не означає, що таке слово існує в реальності.
Будь-яке слово зі світу Сакурако може бути отримане шляхом переставляння стрічок зі словника та їх об'єднання в одне слово. Наприклад, якщо словник містить стрічки: \texttt{``a''},~\texttt{``b''},~\texttt{``ab''}, можливі слова: \texttt{``abab''},~\texttt{``aabb''},~\texttt{``baab''},~\texttt{``baba''},~\texttt{``abba''}.
Оскільки словник трохи застарів, у світі з'явилися нові слова. Їх все ще можна отримати з цього словника, якщо буде обернуто не більше стрічок.
Допоможіть Сакурако знайти лексикографічно найменше можливе слово в сучасному житті.
Перший рядок містить два цілі числа n,~k~(1\le n\le 2\cdot 10^5;\;k\in\{0,1\}) — кількість стрічок у словнику та кількість можливих обертань.
Кожен з наступних рядків містить стрічку s~(1\le |s_i|\le 2\cdot 10^5), яка належить до словника.
Гарантується, що \sum |s_i|\le 4\cdot 10^5 і всі стрічки складаються з малих англійських літер.
В одному рядку виведіть лексикографічно найменше слово.
Приклад
( балів): k = 0,~|s_1|=|s_2|=\dots=|s_n|;
( балів): k = 0,~|s_i|\le 10;
( бали): k = 0;
( бали): n \le 500,~|s_i|\le 10;
( балів): n \le 1000;
( бали): |s_1|=|s_2|=\dots=|s_n|;
( бал): s_i складається з літер та ;
( бали): без додаткових обмежень.