410218: GYM103985 D Национальное достояние

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

D. Национальное достояниеограничение по времени на тест1 секундаограничение по памяти на тест512 мегабайтвводстандартный вводвыводстандартный вывод

Как вы все знаете, в стране Книгерии находится самая большая в мире библиотека. В ней есть десятки тысяч книг, написанных в самые разные периоды человеческой истории.

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

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

Книгерийский алфавит настолько большой, что его буквы обозначаются целыми положительными числами. Каждая буква алфавита бывает строчной и прописной, прописная версия буквы, соответствующей числу x, обозначается как x'. Кодировка BSCII, используемая повсеместно в Книгерии, устроена таким образом, что прописные буквы упорядочиваются в порядке увеличения числа, обозначающего букву, аналогично упорядочиваются строчные буквы, но при этом все прописные буквы алфавита следуют до всех строчных букв алфавита. Например, верны следующие утверждения: 2 < 3, 2' < 3', 3' < 2.

Слово x1, x2, ..., xa не превосходит слова y1, y2, ..., yb в лексикографическом порядке если верно одно из двух условий:

  • либо a ≤ b и x1 = y1, ..., xa = ya, то есть первое слово является префиксом второго;
  • либо есть такая позиция 1 ≤ j ≤ min(a, b), что x1 = y1, ..., xj - 1 = yj - 1 и xj < yj, то есть, в первой позиции, в которой слова отличаются, в первом слове стоит меньшая буква.

Как следствие, слово «3' 7 5» следует в лексикографическом порядке до слова «2 4' 6». Говорят, что слова в последовательности следуют в лексикографическом порядке, если каждое слово последовательности лексикографически не превосходит следующего слова в последовательности.

На данный момент названия всех книг записаны строчными буквами. Денис хочет поменять некоторые буквы на прописные (такой процесс называется капитализацией) таким образом, чтобы названия книг стали следовать в лексикографическом порядке. Однако в процессе реализации этого плана возникла проблема — из-за неаккуратного устройства базы данных Денис не может капитализировать одну букву в конкретном названии. Единственная операция, которую он может проделать с буквой, это капитализировать все вхождения данной буквы в названия всех книг. Такую операцию можно проделать любое количество раз с произвольными буквами книгерийского алфавита.

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

Обратите внимание, в библиотеке могут храниться книги с одинаковыми названиями.

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

В первой строке даются числа n и m (2 ≤ n ≤ 100 000, 1 ≤ m ≤ 100 000) — количество книг в книгерийской библиотеке и количество букв в книгерийском алфавите соответственно. Буквы книгерийского алфавита обозначаются целыми числами от 1 до m.

Каждая из последующих n строк содержит описание книги в формате li, si, 1, si, 2, ..., si, li (1 ≤ li ≤ 100 000, 1 ≤ si, j ≤ m), где li обозначает длину названия книги, а si, j задаёт последовательность букв в названии книги.

Гарантируется, что суммарная длина названий книг не превышает 100 000.

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

В первой строке выведите «Yes» (без кавычек), если возможно капитализировать некоторое подмножество букв таким образом, чтобы последовательность названий книг стала отсортированной лексикографически. Иначе выведите «No» (без кавычек).

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

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

ПримерыВходные данные
4 3
1 2
1 1
3 1 3 2
2 1 1
Выходные данные
Yes
2
2 3
Входные данные
6 5
2 1 2
2 1 2
3 1 2 3
2 1 5
2 4 4
2 4 4
Выходные данные
Yes
0
Входные данные
4 3
4 3 2 2 1
3 1 1 3
3 2 3 3
2 3 1
Выходные данные
No
Примечание

В первом примере названия книг после капитализации букв 2 и 3 выглядят следующим образом:

  • 2'
  • 1
  • 1 3' 2'
  • 1 1

Верно соотношение 2' < 1, поэтому название первой книги лексикографически не превосходит названия второй. Название второй книги является префиксом названия третьей, следовательно они идут в лексикографическом порядке. Так как у названий третьей и четвёртой книги первая буква совпадает, а 3' < 1, то название третьей книги не превосходит названия четвёртой книги лескикографически.

Во втором примере названия книг уже расположены в лексикографическом порядке, а значит можно не капитализировать буквы.

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

加入题单

上一题 下一题 算法标签: