Вам задана матрица, состоящая из \(n\) строк и \(m\) столбцов. Матрица содержит строчные буквы латинского алфавита.
Вы можете выполнить следующую операцию любое количество раз: выбрать два целых числа \(i\) (\(1 \le i \le m\)) и \(k\) (\(0 < k < n\)), циклически сдвинуть все столбцы \(j\), такие, что \(i \le j \le m\), на \(k\). Сдвиг осуществляется вверх.
Например, если у вас есть матрица
\(\left( \begin{array} \\ a & b & c \\ d & e & f \\ g & h & i \end{array}\right) \) и вы выполните операцию с \(i = 2\), \(k = 1\), тогда матрица станет равна:
\(\left( \begin{array} \\ a & e & f \\ d & h & i \\ g & b & c \end{array}\right) \) Вам необходимо обработать \(q\) запросов. Каждый из запросов — строка длины \(m\), состоящая из строчных букв латинского алфавита. Для каждого запроса необходимо определить минимальное количество вышеописанных операций, которые необходимо выполнить, чтобы одна строк матрицы была равна строке из запроса. Обратите внимание, что все запросы независимы, то есть операции, выполняемые в запросе, не влияют на исходную матрицу в других запросах.
Выходные данные
Выведите \(q\) целых чисел. \(i\)-е число должно быть равно минимальному количеству операций, которые необходимо выполнить, чтобы матрица содержала строку из \(i\)-го запроса или \(-1\), если заданную строку невозможно получить.