#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
using namespace std;
#define maxn int(2e5+10)
#define inf 1e9
#define ll long long
struct node{
int t,x,idx;
}a[maxn],b[maxn];
inline int read(){
char c=getchar(); int t=1,k=0;
while('0'>c||c>'9'){if(c=='-') t=-1; c=getchar();}
while('0'<=c&&c<='9'){k=k*10+(c^48); c=getchar();}
return t*k;
}
inline bool cmp(node a,node b){
return a.t<b.t;
}
int n,m,u,v,ans;
double l,r,mid,eps=0.1;
inline bool check(node a[])
{
for(int i=1;i<n;i++){
int s=abs(a[i].x-a[i+1].x);
int t=a[i+1].t-a[i].t;
double fv=s/t;
if(fv>mid) return 0;
}
return 1;
}
int main(){
n=read(),m=read();
for(int i=1;i<=n;i++)
a[i].x=read(),a[i].t=read();
for(int i=1;i<=n;i++)
b[i].x=a[i].x,b[i].t=a[i].t;
for(int i=1;i<=m;i++){
u=read(),v=read();
b[u].t=v; l=0,r=inf;
sort(b+1,b+n+1,cmp);
while(r-l>eps){
mid=(l+r)/2.0;
if(check(b)) r=mid,ans=mid;
else l=mid;
}
for(int i=1;i<=n;i++)
b[i].x=a[i].x,b[i].t=a[i].t;
printf("%d\n",ans);
}
return 0;
}