12079. Зробити рівними
Степан розробляє рольову гру.
Він вирішив написати код, який перевіряє, чи рівні дві карти. У нас є сітки \(A\) і \(B\) з \(H\) горизонтальних рядків і \(W\) вертикальних стовпців. Кожна клітинка сітки містить символ # або . .
Символи, написані на комірці в \(i\)-му рядку зверху та \(j\)-му стовпчику зліва в \(A\) та \(B\), позначаються \(A_{i,j}\) та \(B_{i,j}\) відповідно.
Наступні дві операції називаються вертикальним зсувом і горизонтальним зсувом.
Для кожного \(j=1,2,…,W\) одночасно виконайте наступне:
одночасно замініть \(A_{1,j} ,A_{2,j} ,…,A_{H−1,j} ,A_{H,j}\) на \(A_{2,j} ,A_{3,j} ,…,A_{H,j} ,A_{1,j} \).
Для кожного \(i=1,2,…,H\) одночасно виконайте такі дії:
одночасно замініть \(A_{i,1} ,A_{i,2} ,…,A_{i,W−1} ,A_{i,W}\) на \(A_{I, 2} ,A_{i,3} ,…,A_{i,W} ,A_{i,1 }\) .
Чи існує пара цілих невід’ємних чисел \((s,t)\), яка задовольняє наступну умову?
- Після застосування вертикального зсуву \(s\) разів і горизонтального зсуву \(t\) разів \(A\) дорівнює \(B\).
Тут кажуть, що \(A\) дорівнює \(B\) тоді і тільки тоді, коли \(A_{i,j} =B_{i,j}\) для всіх пар цілих чисел \(( i,j)\) таких, що \(1≤i≤H\) і \(1≤j≤W\).
Виведіть Yes, якщо є така пара чисел, і No в іншому випадку.
Обмеження
- \(2≤H,W≤30\)
- \(A_{i,j}\) дорівнює # або ., аналогічно і для \(B_{i,j}\) .
- \(H\) і \(W\) — цілі числа.
Формат вхідних даних
Перший рядок містить цілі числа \(H, W\).
Наступні \(H\) рядків містять по \(W\) символів \(A_{i,j}\).
Далі наступні \(H\) рядків містять по \(W\) символів \(B_{i,j}\).
Формат вихідних даних
У вихідний потік виведіть відповідь: Yes або No.
Приклад вхідних даних
4 3
..#
...
.#.
...
#..
...
.#.
...
Приклад вихідних даних
Yes
Вибравши (s,t)=(2,1), результатом буде рівність A і B.
Ми опишемо процедуру, коли вибрано (s,t)=(2,1).
..#
...
.#.
...
-
...
.#.
...
..#
-
.#.
...
..#
...
-
#..
...
.#.
...
Приклад вхідних даних
3 2
##
##
#.
..
#.
#.
Приклад вихідних даних
No
Приклад вхідних даних
4 5
#####
.#...
.##..
..##.
...##
#...#
#####
...#.
Приклад вихідних даних
Yes
Коментарі