EduBrick

F. Билеты

1000 мс · 256 МБ · всё или ничего

В вагоне места пронумерованы от 11 до 10910^9. Часть из них уже занята.

Один запрос к системе выглядит как пара (l,r)(l, r) и бронирует все свободные места на отрезке от ll до rr включительно; занятые места запрос просто пропускает. Лида знает, на каких местах хотят ехать она и её друзья, и не готова брать ни одного лишнего билета.

Купите ровно нужные места за наименьшее число запросов.

Чтобы ответ был единственным, границами каждого запроса считаются крайние покупаемые им места: ll — наименьший номер из купленных этим запросом, rr — наибольший. Запросы выводите в порядке возрастания ll.

Формат ввода

Первая строка содержит числа nn и mm (0≤n,m≤1050 \le n, m \le 10^5) — количество занятых мест и количество нужных.

Вторая строка содержит nn различных номеров занятых мест, третья — mm различных нужных номеров. Все номера от 11 до 10910^9, порядок произвольный. Пустой список задаётся пустой строкой.

Формат вывода

Если купить нужные места нельзя, выведите −1-1.

Иначе выведите число pp — количество запросов, а затем pp строк с парами ll и rr.

Примеры

ввод
2 3
2 5
1 3 7
вывод
2
1 3
7 7
ввод
2 5
15 48
52 25 34 11 33
вывод
4
11 11
25 25
33 34
52 52
Войдите, чтобы отправлять решения.