# UUID: e280199d-58c0-4573-ab7b-7b75c81ece7c
from sys import stdin, stdout
input = stdin.readline
print = stdout.write
MAXN = 100000
MAXQ = 200000
r = [0] * MAXN
cap = [0] * MAXN
qs = [[] for _ in range(MAXN)]
qans = [0] * MAXQ
stack = [0] * MAXN
psum = [0] * (MAXN + 1)
def solv():
n,q = map(int,input().split())
for i in reversed(range(n)):
r[i],cap[i] = map(int,input().split())
for i in range(q):
j, vol = map(int,input().split())
qs[n - j].append((vol, i))
sp = 0
psum[0] = 0
for i in range(n):
while sp > 0 and r[stack[sp - 1]] <= r[i]:
sp -= 1
stack[sp] = i
sp += 1
psum[sp] = psum[sp - 1] + cap[i]
for vol, ansindex in qs[i]:
if vol <= psum[sp]:
st, dr = 0, sp
while dr - st > 1:
mij = (st + dr) // 2
if psum[mij] + vol > psum[sp]:
dr = mij
else:
st = mij
qans[ansindex] = n - stack[st]
else:
qans[ansindex] = 0
for i in range(q):
print(str(qans[i])+'\n')
solv()