#include <bits/stdc++.h>
using namespace std;
long long n,q;
struct sst{
long long num,pl;
}st[100005][25];
struct round{
long long d,c,nxt;
long long zhao;
}rd[100005];
void quary(long long r,long long v){
if(rd[r].c >= v){
printf("%lld\n",r);
return;
}
if(rd[r].nxt == r){
printf("%lld\n",0);
return;
}
quary(rd[r].nxt,v-rd[r].c);
}
int main(){
cin >> n >> q;
for(int i = 1;i<=n;i++){
cin >> rd[i].d >> rd[i].c;
st[i][0].num = rd[i].d;
st[i][0].pl = i;
rd[i].nxt = i;
rd[i].zhao = 0;
}
for(int i = 1;i<=20;i++){
for(int j = 1;j<=n;j++){
st[j][i] = st[j][i-1];
if(j+(1<<(i-1)) > n){
continue;
}
if(st[j][i].num < st[j+(1<<(i-1))][i-1].num){
if(rd[j].zhao==0)rd[j].nxt = st[j+(1<<(i-1))][i-1].pl;
rd[j].zhao = 1;
st[j][i].num = st[j+(1<<(i-1))][i-1].num;
st[j][i].pl = st[j+(1<<(i-1))][i-1].pl;
}
}
}
long long r=0,v=0;
for(int i = 1;i<=q;i++){
cin >> r >> v;
quary(r,v);
}
}