#include <iostream>
#include <vector>
#include <set>
#include <map>
using namespace std;
typedef long long ll;
map<ll, int> freq;
set<ll> vals;
multiset<ll> gaps;
void add_val(ll x) {
if (++freq[x] == 1) {
auto it = vals.insert(x).first;
auto nxt = next(it);
auto prv = (it == vals.begin() ? vals.end() : prev(it));
if (prv != vals.end() && nxt != vals.end()) {
gaps.erase(gaps.find(*nxt - *prv));
}
if (prv != vals.end()) gaps.insert(x - *prv);
if (nxt != vals.end()) gaps.insert(*nxt - x);
}
}
void rem_val(ll x) {
if (--freq[x] == 0) {
auto it = vals.find(x);
auto nxt = next(it);
auto prv = (it == vals.begin() ? vals.end() : prev(it));
if (prv != vals.end()) gaps.erase(gaps.find(x - *prv));
if (nxt != vals.end()) gaps.erase(gaps.find(*nxt - x));
if (prv != vals.end() && nxt != vals.end()) {
gaps.insert(*nxt - *prv);
}
vals.erase(it);
}
}
ll get_ans() {
if (vals.empty()) return 0;
ll max_val = *vals.rbegin();
ll max_gap = (gaps.empty() ? 0 : *gaps.rbegin());
return max_val + max_gap;
}
int main() {
ios::sync_with_stdio(false); cin.tie(NULL);
int n, q;
cin >> n >> q;
vector<ll> a(n);
for (int i = 0; i < n; i++) {
cin >> a[i];
add_val(a[i]);
}
while (q--) {
int idx; ll val;
cin >> idx >> val;
idx--; // Chuyển về 0-indexed nếu cần
rem_val(a[idx]);
a[idx] = val;
add_val(a[idx]);
cout << get_ans() << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwoKbWFwPGxsLCBpbnQ+IGZyZXE7CnNldDxsbD4gdmFsczsKbXVsdGlzZXQ8bGw+IGdhcHM7Cgp2b2lkIGFkZF92YWwobGwgeCkgewogICAgaWYgKCsrZnJlcVt4XSA9PSAxKSB7CiAgICAgICAgYXV0byBpdCA9IHZhbHMuaW5zZXJ0KHgpLmZpcnN0OwogICAgICAgIGF1dG8gbnh0ID0gbmV4dChpdCk7CiAgICAgICAgYXV0byBwcnYgPSAoaXQgPT0gdmFscy5iZWdpbigpID8gdmFscy5lbmQoKSA6IHByZXYoaXQpKTsKICAgICAgICAKICAgICAgICBpZiAocHJ2ICE9IHZhbHMuZW5kKCkgJiYgbnh0ICE9IHZhbHMuZW5kKCkpIHsKICAgICAgICAgICAgZ2Fwcy5lcmFzZShnYXBzLmZpbmQoKm54dCAtICpwcnYpKTsKICAgICAgICB9CiAgICAgICAgaWYgKHBydiAhPSB2YWxzLmVuZCgpKSBnYXBzLmluc2VydCh4IC0gKnBydik7CiAgICAgICAgaWYgKG54dCAhPSB2YWxzLmVuZCgpKSBnYXBzLmluc2VydCgqbnh0IC0geCk7CiAgICB9Cn0KCnZvaWQgcmVtX3ZhbChsbCB4KSB7CiAgICBpZiAoLS1mcmVxW3hdID09IDApIHsKICAgICAgICBhdXRvIGl0ID0gdmFscy5maW5kKHgpOwogICAgICAgIGF1dG8gbnh0ID0gbmV4dChpdCk7CiAgICAgICAgYXV0byBwcnYgPSAoaXQgPT0gdmFscy5iZWdpbigpID8gdmFscy5lbmQoKSA6IHByZXYoaXQpKTsKICAgICAgICAKICAgICAgICBpZiAocHJ2ICE9IHZhbHMuZW5kKCkpIGdhcHMuZXJhc2UoZ2Fwcy5maW5kKHggLSAqcHJ2KSk7CiAgICAgICAgaWYgKG54dCAhPSB2YWxzLmVuZCgpKSBnYXBzLmVyYXNlKGdhcHMuZmluZCgqbnh0IC0geCkpOwogICAgICAgIGlmIChwcnYgIT0gdmFscy5lbmQoKSAmJiBueHQgIT0gdmFscy5lbmQoKSkgewogICAgICAgICAgICBnYXBzLmluc2VydCgqbnh0IC0gKnBydik7CiAgICAgICAgfQogICAgICAgIHZhbHMuZXJhc2UoaXQpOwogICAgfQp9CgpsbCBnZXRfYW5zKCkgewogICAgaWYgKHZhbHMuZW1wdHkoKSkgcmV0dXJuIDA7CiAgICBsbCBtYXhfdmFsID0gKnZhbHMucmJlZ2luKCk7CiAgICBsbCBtYXhfZ2FwID0gKGdhcHMuZW1wdHkoKSA/IDAgOiAqZ2Fwcy5yYmVnaW4oKSk7CiAgICByZXR1cm4gbWF4X3ZhbCArIG1heF9nYXA7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOwogICAgCiAgICBpbnQgbiwgcTsKICAgIGNpbiA+PiBuID4+IHE7CiAgICB2ZWN0b3I8bGw+IGEobik7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNpbiA+PiBhW2ldOwogICAgICAgIGFkZF92YWwoYVtpXSk7CiAgICB9CiAgICAKICAgIHdoaWxlIChxLS0pIHsKICAgICAgICBpbnQgaWR4OyBsbCB2YWw7CiAgICAgICAgY2luID4+IGlkeCA+PiB2YWw7CiAgICAgICAgaWR4LS07IC8vIENodXnhu4NuIHbhu4EgMC1pbmRleGVkIG7hur91IGPhuqduCiAgICAgICAgcmVtX3ZhbChhW2lkeF0pOwogICAgICAgIGFbaWR4XSA9IHZhbDsKICAgICAgICBhZGRfdmFsKGFbaWR4XSk7CiAgICAgICAgY291dCA8PCBnZXRfYW5zKCkgPDwgIlxuIjsKICAgIH0KICAgIAogICAgcmV0dXJuIDA7Cn0=