아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Устрашающий палиндром

시간 제한1.5초메모리 제한1024 MB

요약
길이가 같은 n개의 문자열이 주어질 때, 모두를 어떤 순서로 이어 붙여 팰린드롬을 만들 수 있는지 판정하고 그 순서를 출력하거나 -1을 출력한다.
난이도

보통10점 중 5점

유형
문자열, 해시맵, 그리디
정답자
아직 제출이 없습니다

문제

Дети весь вечер ходили по домам и пугали прохожих. В какой-то момент это им надоело и они пошли пугать мистера Х.

Все знают, что мистер X очень боится палиндромов. Поэтому дети решили найти самый большой палиндром и показать его мистеру. К сожалению, за ночь фантазия у детей почти закончилась, и все что им оставалось --- это выписать слова с окружающих их рекламных баннеров и собрать палиндром из них.

Всего на улице расположено nn баннеров, надписи на всех баннерах имеют одинаковую длину kk. Дети считают, что палиндром получится недостаточно устрашающий, если не использовать хотя бы одну надпись, поэтому они хотят составить палиндром, конкатенируя в некотором порядке все надписи на вывесках по одному разу.

Помогите детям собрать устрашающий палиндром или скажите, что из данных фрагментов палиндром получить нельзя, и мистер X сможет спокойно наслаждаться остатком вечера.

입력

В первой строке через пробел даны два целых числа nn и kk (1≤n,k≤1061 \leq n, k \leq 10^6).

В следующих nn строках перечислены надписи на окружающих баннерах, по одной в строке. Каждая надпись имеет длину в точности kk и состоит исключительно из строчных букв латинского алфавита.

Гарантируется, что n⋅k≤107n \cdot k \leq 10^7.

출력

Если устрашающий палиндром можно составить, выведите nn чисел, разделенных пробелами --- номера вывесок в том порядке, в котором их надо конкатенировать, чтобы получился палиндром. Каждое число от 11 до nn должно присутствовать в выводе ровно один раз.

Если же палиндром составить нельзя, выведите единственное целое число −1-1.

예제2

  1. 예제 1

    입력
    3 2
    ab
    cc
    ba
    
    예상 출력
    1 2 3
    
  2. 예제 2

    입력
    2 3
    aba
    cab
    
    예상 출력
    -1