F. kotlinkotlinkotlinkotlin...
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Поликарпу очень нравится писать слово «kotlin». Он выписал это слово несколько раз подряд без пробелов. Например, у него могла получиться такая строка «kotlinkotlinkotlinkotlin».

Полученную строку Поликарп порезал на $$$n$$$ частей и перемешал полученные строки. В результате в настоящий момент у него есть $$$n$$$ строк $$$s_1, s_2, \dots, s_n$$$ таких, что их можно объединить в одну строку вида «kotlinkotlin...kotlin», расположив их в подходящем порядке.

Помогите Поликарпу найти такой порядок записи для строк $$$s_1, s_2, \dots, s_n$$$, что если выписать все эти строки в этом порядке, то получится повторённое один или более раз слово «kotlin».

Обратите внимание, что необходимо использовать все заданные строки и при этом каждую ровно по одному разу.

Входные данные

В первой строке записано целое число $$$n$$$ ($$$1 \le n \le 10^5$$$) — количество строк у Поликарпа. Далее идут сами строки. Сумма длин строк не превосходит $$$3\cdot10^5$$$. Гарантируется, что существует такой порядок последовательной записи всех $$$n$$$ строк, что в результате получится повторённое один или более раз слово «kotlin».

Выходные данные

Выведите $$$n$$$ различных целых чисел $$$p_1, p_2, \dots, p_n$$$ ($$$1 \le p_i \le n$$$), где $$$p_i$$$ это порядковый номер (индекс) строки, которая должна идти $$$i$$$-й в искомом объединении. Иными словами, результат конкатенации $$$s_{p_1}+s_{p_2}+\dots+s_{p_n}$$$ должен иметь вид «kotlinkotlin...kotlin». Если решений, выведите любое из них.

Примеры
Входные данные
2
lin
kot
Выходные данные
2 1 
Входные данные
4
linkotlinkotlinkotl
kotlin
in
kot
Выходные данные
2 4 1 3 
Входные данные
8
i
n
tlin
o
ko
t
k
l
Выходные данные
7 4 3 5 6 8 1 2