12165. Слот-стратегія 2


Відправити розв'язок

Бали: 100
Time limit: 2.0s
Memory limit: 500M

Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python

Є ігровий автомат з \(N\) барабанами.

Розташування символів на \(i\)-му барабані представлено рядком \(S_i\) ​. Тут \(S_i\) — рядок довжини \(M\), що складається з цифр.

Кожен барабан має відповідну кнопку. Для кожного цілого невід’ємного числа \(t\) Степан може або вибрати та натиснути одну кнопку, або нічого не робити рівно через \(t\) секунд після початку обертання барабанів.

Якщо він натисне кнопку, що відповідає \(i\)-му барабану, рівно через \(t\) секунд після початку обертання барабанів, \(i\)-й барабан зупиниться та відобразить \(((t\) mod \(M)+1)\)-й символ \(S_i\) ​. Тут \(t\) mod \(M\) позначає залишок від ділення \(t\) на \(M\).

Степан хоче зупинити всі барабани, щоб усі відображені символи були однаковими. Знайдіть мінімально можливу кількість секунд від початку обертання до зупинки всіх барабанів, щоб його мета була досягнута. Якщо це неможливо, повідомте про цей факт.

Обмеження

  • \(1≤N≤100\)
  • \(1≤M≤10^5\)
  • \(N\) і \(M\) є цілими числами.
  • \(S_i\) — рядок довжини \(M\), що складається з цифр.

Формат вхідних даних

Перший рядок містить цілі числа \(N,M\).

Наступні  \(M\) рядків містять \(S_i\).

Формат вихідних даних

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

Приклад вхідних даних

3 10
1937458062
8124690357
2385760149

Приклад вихідних даних

6

Степан може зупинити кожен барабан таким чином, щоб через 6 секунд після початку обертання барабанів на всіх барабанах відображалося 8.

  • Натисніть кнопку, що відповідає другому барабану, через 0 секунд після початку обертання барабанів. Другий барабан зупиняється та відображає 8, ((0 mod 10)+1=1)-й символ \(S_2\) ​.
  • Натисніть кнопку, що відповідає третьому барабану, через 2 секунди після початку обертання барабанів. Третій барабан зупиняється та відображає 8, ((2 mod 10)+1=3)-й символ \(S_3\) ​.
  • Натисніть кнопку, що відповідає першому барабану, через 6 секунд після початку обертання барабанів. Перший барабан зупиняється та відображає 8, ((6 mod 10)+1=7)-й символ \(S_1\) ​.

Немає способу змусити барабани відображати той самий символ за 5 або менше секунд, тому виведіть 6.

Приклад вхідних даних

10 20
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789
01234567890123456789

Приклад вихідних даних

90

Приклад вхідних даних

5 10
0000000000
1111111111
2222222222
3333333333
4444444444

Приклад вихідних даних

-1

Приклад вхідних даних

10 20
14159265358979323846
26433832795028841971
69399375105820974944
59230781640628620899
86280348253421170679
82148086513282306647
09384460955058223172
53594081284811174502
84102701938521105559
64462294895493038196

Приклад вихідних даних

11

Коментарі

Ще немає коментарів.