#include<bits/stdc++.h>
#define x first
#define y second
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
typedef pair<int, int> PII;
multiset<PII> s;
multiset<int> ans;
int t[N], x[N], u, v, n, m;
PII a[N];
int cal(PII a, PII b) {
return abs(a.y - b.y) / abs(a.x - b.x);
}
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> x[i] >> t[i];
a[i] = make_pair(t[i], x[i]);
s.insert(make_pair(t[i], x[i]));
}
sort(a + 1, a + 1 + n);
for (int i = 1; i < n; i++) {
ans.insert(cal(a[i], a[i + 1]));
}
while (m--) {
int a1, a2;
cin >> u >> v;
auto it = s.lower_bound(make_pair(t[u], x[u])), l=it, r=it;
l = r = it;
l--;
r++;
PII b1 = *l, b2 = *r;
a1 = cal(*l, *it), a2 = cal(*it, *r);
ans.erase(ans.find(a1)), ans.erase(ans.find(a2));
ans.insert(cal(*l, *r));
s.erase(it);
l = r = s.upper_bound(make_pair(v, x[u]));
l--;
cout << max(max(cal(*l, make_pair(v,x[u])),cal(*r, make_pair(v,x[u]))), *(--ans.end())) << '\n';
s.insert(make_pair(t[u], x[u]));
ans.erase(ans.find(cal(b1, b2)));
ans.insert(a1), ans.insert(a2);
}
return 0;
}