Интернет-банкинг - это современная технология, которая позволяет клиентам
банка получать доступ к информации о своих счетах с помощью сети Интернет из
практически любой точки земного шара. Разумеется, при использовании интернет-банкинга
большую роль играют вопросы безопасности. Поэтому для доступа к системе Интернет-банкинга
пользователю необходимо ввести пароль.
Система Интернет-банкинга Bank 2.0, используемая одним Очень Крупным Банком, использует
следующий способ ввода пароля. Серверной частью системы случайно генерируются
\(n\) строк \(s_1, \ldots, s_n\), каждая из которых состоит из \(m\) строчных букв латинского алфавита (предполагается,
что пароли состоят только из таких букв).
При вводе пароля пользователю разрешается
выполнять такую операцию: выбрать из данных строк две (обозначим их как \(s_i\) и \(s_j\), \(1 \le i, j \le n\), \(i \ne j\)) и
некоторую позицию \(k\) (\(1 \le k \le m\)) в них, после чего поменять местами \(k\)-е символы в \(s_i\) и \(s_j\).
Например, если \(s_i=abcde\), \(s_j=vwxyz\), \(k=3\), то после выполнения этой операции
будут верны следующие равенства: \(s_i=abxde\) и \(s_j=vwcyz\). Для ввода пароля
пользователю необходимо за минимальное число таких операций добиться состояния,
в котором хотя бы одна из строк \(s_1, \ldots, s_n\) совпадает с \(p\).
Ваша задача состоит в том, чтобы написать программу, которая по заданному набору строк
\(s_1, \ldots, s_n\) и паролю пользователя \(p\) определит минимальное число операций указанного типа,
которые необходимо выполнить для ввода пароля, а также найдет способ ввода пароля за
такое число операций.
Выходные данные
Первая строка выходного файла должна содержать минимальное число \(c\) операций,
необходимых для ввода пароля. Если с помощью описанных в условии операций пароль
ввести нельзя, то выведите в первой строке "\(-1\)".
В случае существования решения следующие \(c\) строк должны содержать описания операций.
Операции должны быть перечислены в порядке их применения, каждая из строк
должна содержать три целых числа: \(i\), \(j\) и \(k\) (\(1 \le i, j \le n\), \(i \ne j\), \(1 \le k \le m\)).
Эти числа означают, что соответствующая операция состоит в обмене \(k\)-ых символов строк
\(s_i\) и \(s_j\).