Поверніть і Перепишіть#6107

Поверніть і Перепишіть

8 секунд
64 мегабайти
Дуже складна

Дано дві послідовності цілих чисел : A_1 A_2 ... A_n та : B_1 B_2 ... B_m, а також набір правил переписування у вигляді "x_1 x_2 ... x_k → ". Ви можете виконувати наступні перетворення над кожною з послідовностей необмежену кількість разів у будь-якому порядку незалежно.

Ваше завдання - визначити, чи можливо перетворити дві послідовності та в одну й ту ж послідовність. Якщо це можливо, обчисліть довжину найдовшої з послідовностей після такого перетворення.

Вхідні дані

Вхід складається з кількох наборів даних. Кожен набір даних має наступну структуру.

A_1 A_2 ... A_n

B_1 B_2 ... B_m

R_1

...

R_r

Перший рядок набору даних складається з трьох додатних цілих чисел , та , де (n \le 25) - це довжина послідовності , (m \le 25) - це довжина послідовності , і (r \le 60) - це кількість правил переписування. Другий рядок містить цілих чисел, що представляють елементів . Третій рядок містить цілих чисел, що представляють елементів . Кожен з останніх рядків описує правило переписування у наступній формі.

x_1 x_2 ... x_k

Перше - це ціле число (2 \le k \le 10), яке є довжиною лівої частини правила. За ним слідують цілих чисел x_1 x_2 ... x_k, що представляють ліву частину правила. Нарешті йде ціле число , що представляє праву частину.

Всі з A_1, .., A_n, B_1, ..., B_m, x_1, ..., x_k, та знаходяться в діапазоні від до включно.

Рядок " " позначає кінець вводу.

Вихідні дані

Для кожного набору даних, якщо можливо перетворити та в одну й ту ж послідовність, виведіть довжину найдовшої з послідовностей після такого перетворення. Виведіть , якщо це неможливо.

Приклади

Приклад 1

Loading
Loading