Паліндромна ДНК#1823

Паліндромна ДНК

10 секунд
256 мегабайтів
Легка

ДНК-послідовність складається з чотирьох можливих нуклеобаз: аденіну, гуаніну, тиміну та цитозину. Кожна база позначається першою літерою своєї назви. У цій задачі нуклеобази мають циклічний порядок: змінюється на , потім , потім , а далі знову .

Останні дослідження в геномиці показали, що багато хвороб викликаються тим, що деякі підпослідовності баз не утворюють паліндром. Як провідному досліднику лабораторії ICPC, вам надано ДНК-рядок та низку підмножин P_1, \ldots, P_t, кожна з яких містить індекси (нуклеобаз) у . Ваше завдання — перетворити так, щоб для кожної з цих підмножин обмеження до P_1, \ldots, P_t було паліндромом. (Обмеження на підмножину P = \{i_1, i_2, \ldots, i_k\}, де 0 \leq i_1 < i_2 < \ldots < i_k < |S|, — це рядок S_{i_1}S_{i_2}\ldots S_{i_k}.)

Ви можете переглядати будь-яку базу , проте дозволено лише три операції над базою:

  1. Залишити її незмінною.

  2. Збільшити її на у циклічному порядку нуклеобаз (наприклад, змінити на ).

  3. Зменшити її на у циклічному порядку (наприклад, змінити на ).

Крім того, через технологічні обмеження не можна змінювати дві бази із сусідніми позиціями в послідовності. Чи можна досягти мети?

Вхідні дані

У першому рядку кожного тесту записано два цілих числа і (1 \leq N \leq 10\,000, 1 \leq T \leq 6\,000) — довжина послідовності та кількість підмножин. У наступному рядку міститься ДНК-рядок довжини , який складається лише з літер , , , .

Далі йдуть рядків із описами підмножин. Кожен рядок починається з , де (0 \leq L \leq N) — кількість позицій у підмножині, далі йдуть різних цілих чисел від до N - 1 у зростаючому порядку. Підмножини можуть частково або повністю перетинатися.

Порожній рядок відділяє окремі тести. Вхідні дані завершуються рядком 0 0.

Вихідні дані

Для кожного тесту в одному рядку виведіть YES, якщо рішення існує, інакше — NO.

Приклади

AGTAT

P_1 = \{1, 4\}, P_2 = \{0, 1\}, P_3 = \{0, 2, 4\}

Один із способів — збільшити перший символ і зменшити останній, отримавши S' = GGTAG. Обмеження S' на P_1, P_2, P_3 дорівнюють GG, GG, GTG відповідно; усі вони є паліндромами.

Випадок, коли рішення неможливе: CATGC і потрібно, щоб підпослідовності на позиціях і були паліндромами. Тут символи , і мають стати . Але це вимагає змінювати символи і , які розташовані підряд, що заборонено.

Приклад 1

Loading
Loading