Гра в шашки відбувається на дошці 8 на 8, яка складається з червоних і чорних клітин, що чергуються. Два гравці, Червоний і Білий, починають з фігур, розставлених у початковій позиції, як показано нижче:
Правила руху та захоплення такі (Примітка: хід вперед означає рух фігури в напрямку до сторони супротивника):
Гравці ходять по черзі.
Фігура може рухатися на одну клітину вперед по діагоналі на будь-яку порожню клітину.
Фігура може перестрибнути через фігуру супротивника, якщо ця фігура знаходиться поруч, а клітина безпосередньо за нею порожня. Після стрибка фігура супротивника знімається з дошки (захоплюється). Якщо після стрибка фігура може зробити ще один стрибок, вона повинна це зробити. Це триває, поки не залишиться можливості для стрибків. Це називається багаторазовим стрибком.
Гравець зобов'язаний зробити стрибок, якщо це можливо. Якщо можливі кілька стрибків, гравець може вибрати будь-який, навіть одинарний стрибок замість багаторазового. (Однак, якщо обрано багаторазовий стрибок, його потрібно завершити.)
Останній рядок на стороні супротивника (рядок, де фігура не може рухатися вперед) є рядком просування гравця. Коли фігура досягає цього рядка, вона стає дамкою і може рухатися та захоплювати назад, а також вперед. Як тільки фігура просувається, її хід закінчується; вона не може почати стрибок або продовжити багаторазовий стрибок після того, як стала дамкою, до наступного ходу.
Фігура може бути перестрибнута не більше одного разу під час ходу (це враховується лише тоді, коли дамка робить стрибок).
Ігри записуються, використовуючи нумерацію клітин, показану вище. Наприклад, простий хід вперед для Білого може бути -; одинарний стрибок для Червоного може бути - (захоплення білої фігури на клітині ); а багаторазовий стрибок для білої дамки може бути --- (захоплення червоних фігур на , і ).
Для цієї задачі вам буде надано позицію гри в процесі та набір ходів, які потрібно застосувати, починаючи з цієї позиції, і ви повинні визначити, чи всі ходи є легальними, написавши Розширену Машину Шашок.
Вхідні дані складатимуться з кількох екземплярів задачі. Кожен екземпляр починатиметься з двох цілих чисел і , що вказують на кількість червоних і білих фігур на дошці (значення r = w = 0 вказує на кінець введення, інакше 1 \le r, w \le 12). Наступний рядок міститиме номерів клітин, що вказують на позиції червоних фігур, а наступний рядок міститиме номерів клітин для білих фігур. Позитивні значення клітин вказуватимуть, що на цій клітині знаходиться звичайна фігура, тоді як негативне значення вказуватиме, що на клітині знаходиться просунута фігура. Наступний рядок міститиме одне ціле число m \ge 1, що вказує на кількість ходів, які потрібно зробити, після чого пробіл і один символ (або , або ), що вказує, чий хід. Наступні рядків міститимуть ходів, використовуючи описану вище нотацію. (Ви можете припустити, що в жодному ході не буде більше номерів клітин.)
Всі позиції на дошці будуть легальними (наприклад, ніколи не буде двох фігур, що займають одну і ту ж клітину). Ви можете припустити, що фігури, які досягли свого рядка просування, дійсно просунуті; тобто не буде фігур на їхньому рядку просування, які не є дамками.
Для кожного екземпляра задачі виведіть або All moves valid, або Move is invalid, де n=1 відповідає першому ходу в екземплярі задачі. Якщо є кілька нелегальних ходів, ви повинні вказати лише перший з них.
Приклад 1