Заданы \(n\) левых и \(n\) правых ботинок. Каждый ботинок имеет цвет, который задан строчной буквой латинского алфавита или знаком вопроса ('?'). Таким образом, вам заданы две строки \(l\) и \(r\), каждая имеет длину \(n\), где буква \(l_i\) обозначает цвет \(i\)-го левого ботинка, а буква \(r_i\) обозначает цвет \(i\)-го правого ботинка.
Строчная буква латинского алфавита обозначает конкретный цвет ботинка, а знак вопроса — неопределенный цвет. Два конкретных цвета совместимы, если они в точности совпадают. Неопределенный цвет совместим с любым цветом (не важно — конкретным или неопределенным).
Например, следующие пары цветов совместимы: ('f', 'f'), ('?', 'z'), ('a', '?') и ('?', '?'). Следующие пары цветов не совместимы: ('f', 'g') и ('a', 'z').
Вычислите максимальное количество пар ботинок, которые можно собрать из заданного набора так, что каждая пара состоит из одного левого и одного правого ботинка и цвета ботинок в паре совместимы.
Выведите максимальное количество пар и сами пары. Конечно, каждый ботинок может входить в состав не более одной пары.
Выходные данные
Выведите \(k\) — максимальное количество пар ботинок вида «левый и правый ботинок» совместимых цветов, которые можно собрать из заданного набора.
Следующие \(k\) строк должны содержать пары целых чисел \(a_j, b_j\) (\(1 \le a_j, b_j \le n\)), где \(j\)-я из этих строк содержит индекс левого ботинка в \(j\)-й паре (число \(a_j\)) и индекс правого ботинка в \(j\)-й паре (число \(b_j\)). Все значения \(a_j\) должны быть различны, все значения \(b_j\) должны быть различны.
Если существует несколько ответов, выведите любой из них.