#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
const int Max=1e5+10;
int n,m,u,v,ans;
tree<pair<int,int>,null_type,less<pair<int,int>>,rb_tree_tag,tree_order_statistics_node_update> tr;
tree<pair<int,int>,null_type,greater<pair<int,int>>,rb_tree_tag,tree_order_statistics_node_update> dif;
int ds[Max];
struct InpD{
int x,t;
}inp[Max];
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>inp[i].x>>inp[i].t;
tr.insert(pair<int,int>(inp[i].t,inp[i].x));
}
for(int i=1;i<n;i++){
pair<int,int> tmp(abs(tr.find_by_order(i)->second-tr.find_by_order(i-1)->second)/abs(tr.find_by_order(i)->first-tr.find_by_order(i-1)->first),i-1);
ds[i-1]=tmp.first;
dif.insert(tmp);
}
for(int i=1;i<=m;i++){
ans=0;
cin>>u>>v;
pair<int,int> old(inp[u].t,inp[u].x);
pair<int,int> ins(v,inp[u].x);
pair<int,int> tmp1(ds[tr.order_of_key(pair<int,int>(inp[u].t,inp[u].x))],tr.order_of_key(pair<int,int>(inp[u].t,inp[u].x)));
pair<int,int> lst;
if(tr.order_of_key(pair<int,int>(inp[u].t,inp[u].x))-1!=-1)
lst=*tr.find_by_order(tr.order_of_key(pair<int,int>(inp[u].t,inp[u].x))-1);
pair<int,int> tmp2(ds[tr.order_of_key(pair<int,int>(lst.first,lst.second))],tr.order_of_key(lst));
pair<int,int> tmp3;
int ttm1=tr.order_of_key(pair<int,int>(inp[u].t,inp[u].x));
pair<int,int> oldnxt,oldfrt;
if(ttm1!=0){
oldfrt=*(tr.find_by_order(ttm1-1));
}
if(ttm1!=n-1){
oldnxt=*(tr.find_by_order(ttm1+1));
}
if(ttm1!=0&&ttm1!=n-1){
tmp3=pair<int,int>(abs(tr.find_by_order(ttm1+1)->second-tr.find_by_order(ttm1-1)->second)/abs(tr.find_by_order(ttm1+1)->first-tr.find_by_order(ttm1-1)->first),-114514);
}
tr.erase(tr.find_by_order(tr.order_of_key(old)));
tr.insert(ins);
int ttm2=tr.order_of_key(ins);
if(ttm1!=n-1){
dif.erase(dif.find_by_order(dif.order_of_key(tmp1)));
}
if(ttm1!=0){
dif.erase(dif.find_by_order(dif.order_of_key(tmp2)));
}
if(ttm1!=ttm2){
dif.insert(tmp3);
}
ans=max(ans,dif.find_by_order(0)->first);
pair<int,int> nwnxt,nwfrt;
if(ttm2!=0){
nwfrt=*(tr.find_by_order(ttm2-1));
ans=max(ans,abs(nwfrt.second-ins.second)/abs(nwfrt.first-ins.first));
}
if(ttm2!=n-1){
nwnxt=*(tr.find_by_order(ttm2+1));
ans=max(ans,abs(nwnxt.second-ins.second)/abs(nwnxt.first-ins.first));
}
tr.insert(old);
tr.erase(tr.find_by_order(tr.order_of_key(ins)));
if(ttm1!=n-1){
dif.insert(tmp1);
}
if(ttm1!=0){
dif.insert(tmp2);
}
if(ttm1!=ttm2){
dif.erase(dif.find_by_order(dif.order_of_key(tmp3)));
}
cout<<ans<<'\n';
}
return 0;
}