Изменения рейтингов за последние раунды временно удалены. Скоро они будут возвращены. ×

E. Перевороты
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В Берляндии ураган и это стихийное бедствие не обошло стороной предместье Строксвиль. Вы мчитесь в него, чтобы проверить, всё ли в порядке с вашей любимой строкой. Ураган немного потрепал её, перевернув несколько её непересекающихся подстрок. У вас сохранилась фотография строки до урагана и вы хотите привести её в исходное состояние, перевернув обратно наименьшее возможное число её подстрок, но для этого сперва нужно определиться, какие подстроки нужно перевернуть.

У вас есть строка s  — исходное состояние вашей строки и строка t  — то, какой она стала после того, как ураган перевернул некоторые её подстроки. Ваша задача выбрать k непересекающихся подстрок строки t таких что если их развернуть, вы получите строку s и число k при этом наименьшее возможное.

Входные данные

В первой строке входа вам дана строка s, во второй  — строка t. Обе строки имеют одинаковую длину и состоят из строчных английских букв. 1 ≤ |s| = |t| ≤ 5·105

Выходные данные

В первой строке выведите число k  — наименьшее возможное число подстрок, которые надо перевернуть. В следующих k строках выведите по два числа li, ri в каждой, обозначающие, что нужно перевернуть строку с li по ri символы (строки 1-индексированные). Указанные подстроки не должны пересекаться. Если вариантов ответа несколько, выведите любой. Если решения не существует, выведите -1.

Пример
Входные данные
abcxxxdef
cbaxxxfed
Выходные данные
2
7 9
1 3