시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 1024 MB708819.512%

문제

Организация <<2Д>> занимается выдачей разрешений на вырубку леса. Ей поступают заявки на вырубку деревьев, расположенных вдоль шоссе. На шоссе расположены $n$ деревьев, $i$-е из них растёт в точке с координатой $x_i$ и имеет высоту $h_i$. Информация про имеющиеся деревья упорядочена так, что выполняется $x_1 < x_2 < \ldots < x_{n-1} < x_n$.

Деревья можно вырубать по одному следующим образом. Дерево срубается под корень и затем должно быть повалено либо влево, либо вправо. Чтобы дерево не повредилось при падении, оно не должно задевать ещё не срубленные деревья на расстоянии меньше своей высоты. Иначе говоря, если дерево в точке $x_i$ высоты $h_i$ валят направо, то не должно быть еще не срубленного дерева с координатой $x_j$ такой, что $x_i < x_j < x_i + h_i$. Если это же дерево валят налево, то не должно быть еще не срубленного дерева с координатой $x_j$ такой, что $x_i - h_i < x_j < x_i$.

Слева от дерева с координатой $x_1$ и справа от дерева с координатой $x_n$ находятся важные постройки, поэтому валить деревья так, чтобы они падали за пределы отрезка $[x_1, x_n]$ запрещается. Иначе говоря, дерево в точке $x_i$ высоты $h_i$ нельзя валить влево, если $x_i - h_i < x_1$, и нельзя валить вправо, если $x_i + h_i > x_n$.

Ситуация из первого примера: сначала второе дерево валят вправо, затем третье влево влево, и наконец, первое валят вправо

В организацию поступили $q$ заявок на вырубку деревьев. Каждая заявка задается двумя числами $l_i$ и $r_i$ и означает, что заявитель хочет вырубать деревья с номерами от $l_i$ до $r_i$, включительно.

В процессе выполнения заявки разрешается рубить только деревья с номерами от $l_i$ до $r_i$. Срубленное дерево разрешается валить в том числе и на территорию левее дерева с номером $l_i$ или правее дерева с номером $r_i$, но не за пределы отрезка $[x_1, x_n]$. Задевать деревья с номерами вне диапазона от $l_i$ до $r_i$ не разрешается.

Для каждой заявки требуется рассчитать, какое максимальное число деревьев с номерами в указанном диапазоне можно вырубить, не повредив ни одно дерево при падении. Каждая заявка должна быть обработана независимо от остальных.

입력

Первая строка содержит два целых числа $n$ и $q$ ($1 \leq n, q \leq 500\,000$).

Каждая из следующих $n$ строк описывает очередное дерево и содержит два целых числа $x_i$, $h_i$ ($1 \leq x_i \leq 10^9$; $1 \leq h_i \leq 10^9$).

Гарантируется, что $x_1 < x_2 < \ldots < x_n$.

Далее следуют $q$ описаний заявок, по одному в строке. Строка $i$ содержит два целых числа $l_i$, $r_i$ ($1 \leq l_i \leq r_i \leq n$).

출력

Для каждой заявки выведите максимальное количество деревьев, которое можно вырубить, не повредив в процессе ни одного дерева.

서브태스크

번호배점제한
115

$n, q \leq 100 $

215

$n, q \leq 500 $

315

$n, q \leq 5000 $

45

$n, q \leq 10\,000 $

510

$n, q \leq 100\,000 $

610

$n, q \leq 200\,000 $

730

$n, q \leq 500\,000 $

예제 입력 1

3 3
1 3
3 1
4 2
1 1
2 3
1 3

예제 출력 1

0
2
3

예제 입력 2

5 3
1 5
3 1
4 2
5 3
6 1
1 5
5 5
1 1

예제 출력 2

5
1
0

예제 입력 3

1 1
100 100
1 1

예제 출력 3

0

채점 및 기타 정보

  • 예제는 채점하지 않는다.