Олимпиадный тренинг

Задача . E. День рождения


У маленькой Даши сегодня день рождения — ей исполнилось целых 8 лет! По такому случаю каждый из n её родственников и друзей подарил ей ленточку с праздничным поздравлением, причём, как оказалось, все поздравления отличаются друг от друга. Даша собрала все ленточки вместе и решила выкинуть некоторые из них так, чтобы оставшийся набор стал стильным. Именинница считает набор стильным, если ни одно поздравление не является подстрокой другого. Напомним, что подстрокой строки s называется непрерывный отрезок букв строки s.

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

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

Первая строка входных данных содержит целое число n (1 ≤ n ≤ 750) — количество родственников и друзей Даши.

Каждая из следующих n строк содержит ровно одно поздравление. Каждое поздравление состоит только из строчных английских букв 'a' и 'b'.

Суммарная длина всех поздравлений не превышает 10 000 000 символов.

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

В первой строке выведите максимальный размер стильного набора. Во второй строке выведите номера участвующих в нём лент, считая, что они нумеруются с единицы в порядке следования во входных данных. Если стильных наборов максимального размера несколько, то выведите любой из них.

Примечание

В примере можно было также оставить ленты 3 и 4.


Примеры
Входные данныеВыходные данные
1 5
abab
aba
aabab
ababb
bab
2
2 5

time 3000 ms
memory 512 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя