#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=1e5+5;
int n,q;
ll f[N][31],f1[N][31];
ll d[N],c[N];
stack<ll>stk;
int main(){
memset(f1,0x3f,sizeof f1);
cin>>n>>q;
for(int i=1;i<=n;i++){
cin>>d[i]>>c[i];
}
c[0]=2e9;
for(int i=n;i>=1;i--){
while(!stk.empty()&&d[stk.top()]<=d[i])stk.pop();
if(!stk.empty()){
f[i][0]=stk.top();
f1[i][0]=c[i]+c[stk.top()];
}
stk.push(i);
}
for(int j=1;j<=30;j++){
for(int i=1;i<=n;i++){
f[i][j]=f[f[i][j-1]][j-1];
if(f[i][j]==0)break;
f1[i][j]=f1[i][j-1]+f1[f[i][j-1]][j-1]-c[f[i][j-1]];
}
}
for(int i=1;i<=q;i++){
ll r,v;
cin>>r>>v;
if(v<=c[r]){
cout<<r<<"\n";
continue;
}
v-=c[r];
for(int j=30;j>=0;j--){
if(f1[r][j]-c[r]<v&&f[r][j]!=0){
v-=f1[r][j]-c[r];
r=f[r][j];
}
}
cout<<f[r][0]<<"\n";
}
return 0;
}