Задача №113220. Обитаемые горы

По мотивам фантастической повести

А. и Б. Стругацких «Обитаемый остров»

Правительство страны Неизвестных Отцов планирует построить в гористом районе на границе с Хонтией башню противобаллистической защиты.

Участок горной цепи в этом районе представлен ломаной, состоящей из n звеньев, последовательно соединяющих \(n\) + 1 вершину. Вершины пронумерованы числами от \(0\) до \(n\) в порядке возрастания координаты \(x\). Звенья пронумерованы числами от 1 до \(n\), при этом \(i\)-е звено соединяет вершины с номерами \(i\) − 1 и \(i\).

Вершина с номером 0 находится в точке (0, 0). Звено с номером \(i\) задано двумя числами \(d_i\) — длиной проекции на ось \(x\) и \(k_i\) — угловым коэффициентом. Таким образом, если вершина с номером \(i\) − 1 имеет координаты \((x_{i−1}, y_{i−1})\), то координаты \(i\)-й вершины можно вычислить как \((x_{i − 1} + d_i , y_{i−1} + k_i · d_i)\). Последняя вершина лежит на оси \(x\), то есть \(y_n = 0\).

Точка \(A (x_A, y_A)\) находится в прямой видимости из точки \(B (x_B, y_B)\), если ни одна точка отрезка AB не находится строго под ломаной.

Башня представлена вертикальным отрезком ненулевой длины, нижняя точка которого расположена на ломаной. Гражданин страны Неизвестных Отцов чувствует себя в безопасности, если верхняя точка башни находится в его прямой видимости.

Пусть верхняя точка башни имеет координаты (\(x, y\)). Два разведчика выбегают из нижней точки башни соответственно на запад (в направлении уменьшения координаты \(x\)) и на восток (в направлении увеличения координаты \(x\)). Каждый разведчик бежит по поверхности горной цепи до тех пор, пока дальнейшее перемещение не выводит верхнюю точку башни из его прямой видимости или до границы горной цепи.

Правительство подготовило \(q\) вариантов расположения башни, каждый из которых характеризуется двумя целыми числами (\(u_j , v_j\)) — координатами верхней точки башни. Требуется написать программу, которая для каждого варианта определяет \(x\)-координаты двух точек, до которых добегут разведчики.

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

Первая строка входных данных содержит два числа \(n\) и \(q\) (\(1 \le n, q \le 400 000\)) — количество звеньев ломаной и количество вариантов расположения башни.

Ограничения на величины последующих входных данных зависят от значения константы \(C\), которая может быть равна \(10^4\) или \(10^9\) в зависимости от подзадачи (см. таблицу системы оценивания).

Каждая из последующих \(n\) строк содержит по два целых числа \(d_i , k_i (1 \le d_i \le C; −C \le k_i \le C\)) — проекцию на ось \(x\) и угловой коэффициент \(i\)-го звена ломаной (\(0 = x_0 < x_1 < \cdots < x_i < \cdots < x_n \le C; y_0 = y_n = 0; −C \le y_i \le C\)).

Каждая из последующих \(q\) строк содержит по два целых числа \(u_j, v_j (0 \le u_j \le C, −C \le v_j \le C\)) — координаты верхней точки башни в \(j\)-м варианте расположения.

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

Выходные данные должны содержать \(q\) строк, в каждой из которых находятся по два целых числа \(l_j\) и \(r_j\)\(x\)-координаты двух точек, до которых добегут разведчики, направляющиеся на запад и на восток соответственно в \(j\)-м варианте расположения башни. Гарантируется, что числа \(l_j\) и \(r_j\) являются целыми.

Таблица системы оценивания

Замечание

Обратите внимание, что все точки отрезка между (6, 2) и (7, 1) находятся в прямой видимости из верхней точки башни согласно определению в условии.
В данном тесте нижние точки всех вариантов башен совпадают.
В данном тесте верхние точки башен всех вариантов находятся на одной горизонтальной прямой. Обратите внимание, что нижняя точка башни может совпадать с одним из концов горной цепи.
В четвёртом тесте показывается, что в стране Неизвестных Отцов горная цепь может целиком находиться ниже уровня её концов.

Примеры
Входные данные
6 1
3 1
2 -1
1 1
1 -1
1 1
2 -1
5 3
Выходные данные
3 8
Входные данные
5 3
1 1
1 -2
2 0
2 1
1 -1
3 0
3 5
3 3
Выходные данные
1 6
0 7
0 6
Входные данные
6 4
1 2
2 -2
1 1
1 -2
4 1
1 -1
1 4
3 4
10 4
7 4
Выходные данные
0 4
1 9
4 10
1 10
Входные данные
8 4
1 -3
2 0
1 1
2 0
1 -3
1 3
1 2
1 0
2 -2
6 -1
6 4
7 -4
Выходные данные
0 6
4 9
0 10
6 9
Сдать: для сдачи задач необходимо войти в систему