#include <bits/stdc++.h>
using namespace std;
bool memory1;
typedef long long ll;
typedef unsigned long long ull;
typedef double dbe;
typedef pair<ll, ll> pll;
typedef vector<ll> vll;
#define openFile(name) freopen((name ".inp"), "r", stdin), freopen((name ".out"), "w", stdout)
#define FOR(i, a, b, x) for (ll i = (a); i <= (b); i += (x))
#define ROF(i, a, b, x) for (ll i = (a); i >= (b); i += (x))
#define fi first
#define se second
#define MASK(x) (1LL << (x))
#define getBit(mask, i) (((mask) >> (i)) & 1)
#define BitOn(mask) (__builtin_popcountll(mask))
const int maxN = 2e5 + 5e4 + 2;
const ll LOG = 20;
const ll INF18 = 1e18;
const int INF9 = 1e9;
const ll MOD = 1e9 + 7;
//////////////////////////////////////////////
/////////////////nhan0123456//////////////////
//////////////////////////////////////////////
const ll BL = 500;
const ll MAXVAL = 5e4 + 5;
struct BIT {
vll b;
ll n;
void sz(ll _) {
n = _;
b.assign(n + 2, 0);
}
void update(ll i, ll val = 1) {
for (; i <= n; i += i & -i) b[i] += val;
}
ll get(ll i) {
ll ans = 0;
for (; i > 0; i -= i & -i) ans += b[i];
return ans;
}
ll get(ll l, ll r) {
return get(r) - get(l - 1);
}
};
ll n, q;
ll a[maxN];
ll block[maxN];
BIT bit[BL + 2];
ll block_cnt;
ll block_start[BL + 2], block_end[BL + 2];
ll getBlock(ll i) {
return (i - 1) / BL + 1;
}
void initBlock() {
block_cnt = getBlock(n);
FOR (i, 1, n, 1) block[i] = getBlock(i);
FOR (i, 1, block_cnt, 1) {
block_start[i] = (i - 1) * BL + 1;
block_end[i] = min(n, i * BL);
bit[i].sz(MAXVAL);
}
FOR (i, 1, n, 1) bit[block[i]].update(a[i]);
}
ll Calc1(ll x, ll val) {
ll res = 0;
FOR (b, 1, block[x] - 1, 1) {
res += bit[b].get(val + 1, MAXVAL);
}
FOR (i, block_start[block[x]], x - 1, 1) {
if (a[i] > val) ++res;
}
return res;
}
ll Calc2(ll x, ll val) {
ll res = 0;
FOR (b, block[x] + 1, block_cnt, 1) {
res += bit[b].get(1, val - 1);
}
FOR (i, x + 1, block_end[block[x]], 1) {
if (a[i] < val) ++res;
}
return res;
}
ll Solve() {
ll S = 0;
BIT all; all.sz(MAXVAL);
ROF (i, n, 1, -1) {
S += all.get(a[i] - 1);
all.update(a[i]);
}
cin >> q;
while (q--) {
ll x, y;
cin >> x >> y;
S -= Calc1(x, a[x]) + Calc2(x, a[x]);
bit[block[x]].update(a[x], -1);
a[x] = y;
bit[block[x]].update(a[x], +1);
S += Calc1(x, a[x]) + Calc2(x, a[x]);
cout << S << "\n";
}
return 0;
}
void input() {
cin >> n >> q;
FOR (i, 1, n, 1) cin >> a[i];
initBlock();
Solve();
}
int main() {
//openFile("temp");
ios_base::sync_with_stdio(0);
cin.tie(0);
input();
//bool memory2;
//cerr << "\n\n\nTime: "<< 1000.0 * clock() / CLOCKS_PER_SEC << " ms";
//cerr << "\n\n\nMemory: "<< abs(&memory1 - &memory2) * 1.0 / MASK(20) <<" MB";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmJvb2wgbWVtb3J5MTsKCnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1bGw7CnR5cGVkZWYgZG91YmxlIGRiZTsKdHlwZWRlZiBwYWlyPGxsLCBsbD4gcGxsOwp0eXBlZGVmIHZlY3RvcjxsbD4gdmxsOwoKI2RlZmluZSBvcGVuRmlsZShuYW1lKSBmcmVvcGVuKChuYW1lICIuaW5wIiksICJyIiwgc3RkaW4pLCBmcmVvcGVuKChuYW1lICIub3V0IiksICJ3Iiwgc3Rkb3V0KQojZGVmaW5lIEZPUihpLCBhLCBiLCB4KSBmb3IgKGxsIGkgPSAoYSk7IGkgPD0gKGIpOyBpICs9ICh4KSkKI2RlZmluZSBST0YoaSwgYSwgYiwgeCkgZm9yIChsbCBpID0gKGEpOyBpID49IChiKTsgaSArPSAoeCkpCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBNQVNLKHgpICgxTEwgPDwgKHgpKQojZGVmaW5lIGdldEJpdChtYXNrLCBpKSAoKChtYXNrKSA+PiAoaSkpICYgMSkKI2RlZmluZSBCaXRPbihtYXNrKSAoX19idWlsdGluX3BvcGNvdW50bGwobWFzaykpCgpjb25zdCBpbnQgbWF4TiA9IDJlNSArIDVlNCArIDI7CmNvbnN0IGxsIExPRyA9IDIwOwpjb25zdCBsbCBJTkYxOCA9IDFlMTg7CmNvbnN0IGludCBJTkY5ID0gMWU5Owpjb25zdCBsbCBNT0QgPSAxZTkgKyA3OwoKLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwovLy8vLy8vLy8vLy8vLy8vL25oYW4wMTIzNDU2Ly8vLy8vLy8vLy8vLy8vLy8vCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KY29uc3QgbGwgQkwgPSA1MDA7CmNvbnN0IGxsIE1BWFZBTCA9IDVlNCArIDU7CgpzdHJ1Y3QgQklUIHsKICAgIHZsbCBiOwogICAgbGwgbjsKICAgIHZvaWQgc3oobGwgXykgewogICAgICAgIG4gPSBfOwogICAgICAgIGIuYXNzaWduKG4gKyAyLCAwKTsKICAgIH0KICAgIHZvaWQgdXBkYXRlKGxsIGksIGxsIHZhbCA9IDEpIHsKICAgICAgICBmb3IgKDsgaSA8PSBuOyBpICs9IGkgJiAtaSkgYltpXSArPSB2YWw7CiAgICB9CiAgICBsbCBnZXQobGwgaSkgewogICAgICAgIGxsIGFucyA9IDA7CiAgICAgICAgZm9yICg7IGkgPiAwOyBpIC09IGkgJiAtaSkgYW5zICs9IGJbaV07CiAgICAgICAgcmV0dXJuIGFuczsKICAgIH0KICAgIGxsIGdldChsbCBsLCBsbCByKSB7CiAgICAgICAgcmV0dXJuIGdldChyKSAtIGdldChsIC0gMSk7CiAgICB9Cn07CgpsbCBuLCBxOwpsbCBhW21heE5dOwpsbCBibG9ja1ttYXhOXTsKQklUIGJpdFtCTCArIDJdOwpsbCBibG9ja19jbnQ7CmxsIGJsb2NrX3N0YXJ0W0JMICsgMl0sIGJsb2NrX2VuZFtCTCArIDJdOwoKbGwgZ2V0QmxvY2sobGwgaSkgewogICAgcmV0dXJuIChpIC0gMSkgLyBCTCArIDE7Cn0KCnZvaWQgaW5pdEJsb2NrKCkgewogICAgYmxvY2tfY250ID0gZ2V0QmxvY2sobik7CiAgICBGT1IgKGksIDEsIG4sIDEpIGJsb2NrW2ldID0gZ2V0QmxvY2soaSk7CiAgICBGT1IgKGksIDEsIGJsb2NrX2NudCwgMSkgewogICAgICAgIGJsb2NrX3N0YXJ0W2ldID0gKGkgLSAxKSAqIEJMICsgMTsKICAgICAgICBibG9ja19lbmRbaV0gPSBtaW4obiwgaSAqIEJMKTsKICAgICAgICBiaXRbaV0uc3ooTUFYVkFMKTsKICAgIH0KICAgIEZPUiAoaSwgMSwgbiwgMSkgYml0W2Jsb2NrW2ldXS51cGRhdGUoYVtpXSk7Cn0KCmxsIENhbGMxKGxsIHgsIGxsIHZhbCkgewogICAgbGwgcmVzID0gMDsKICAgIEZPUiAoYiwgMSwgYmxvY2tbeF0gLSAxLCAxKSB7CiAgICAgICAgcmVzICs9IGJpdFtiXS5nZXQodmFsICsgMSwgTUFYVkFMKTsKICAgIH0KICAgIEZPUiAoaSwgYmxvY2tfc3RhcnRbYmxvY2tbeF1dLCB4IC0gMSwgMSkgewogICAgICAgIGlmIChhW2ldID4gdmFsKSArK3JlczsKICAgIH0KICAgIHJldHVybiByZXM7Cn0KCmxsIENhbGMyKGxsIHgsIGxsIHZhbCkgewogICAgbGwgcmVzID0gMDsKICAgIEZPUiAoYiwgYmxvY2tbeF0gKyAxLCBibG9ja19jbnQsIDEpIHsKICAgICAgICByZXMgKz0gYml0W2JdLmdldCgxLCB2YWwgLSAxKTsKICAgIH0KICAgIEZPUiAoaSwgeCArIDEsIGJsb2NrX2VuZFtibG9ja1t4XV0sIDEpIHsKICAgICAgICBpZiAoYVtpXSA8IHZhbCkgKytyZXM7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CgpsbCBTb2x2ZSgpIHsKICAgIGxsIFMgPSAwOwogICAgQklUIGFsbDsgYWxsLnN6KE1BWFZBTCk7CiAgICBST0YgKGksIG4sIDEsIC0xKSB7CiAgICAgICAgUyArPSBhbGwuZ2V0KGFbaV0gLSAxKTsKICAgICAgICBhbGwudXBkYXRlKGFbaV0pOwogICAgfQoKICAgIGNpbiA+PiBxOwogICAgd2hpbGUgKHEtLSkgewogICAgICAgIGxsIHgsIHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBTIC09IENhbGMxKHgsIGFbeF0pICsgQ2FsYzIoeCwgYVt4XSk7CiAgICAgICAgYml0W2Jsb2NrW3hdXS51cGRhdGUoYVt4XSwgLTEpOwogICAgICAgIGFbeF0gPSB5OwogICAgICAgIGJpdFtibG9ja1t4XV0udXBkYXRlKGFbeF0sICsxKTsKICAgICAgICBTICs9IENhbGMxKHgsIGFbeF0pICsgQ2FsYzIoeCwgYVt4XSk7CiAgICAgICAgY291dCA8PCBTIDw8ICJcbiI7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCnZvaWQgaW5wdXQoKSB7CiAgICBjaW4gPj4gbiA+PiBxOwogICAgRk9SIChpLCAxLCBuLCAxKSBjaW4gPj4gYVtpXTsKICAgIGluaXRCbG9jaygpOwogICAgU29sdmUoKTsKfQoKaW50IG1haW4oKSB7CiAgICAvL29wZW5GaWxlKCJ0ZW1wIik7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGlucHV0KCk7CgogICAgLy9ib29sIG1lbW9yeTI7CiAgICAvL2NlcnIgPDwgIlxuXG5cblRpbWU6ICI8PCAxMDAwLjAgKiBjbG9jaygpIC8gQ0xPQ0tTX1BFUl9TRUMgPDwgIiBtcyI7CiAgICAvL2NlcnIgPDwgIlxuXG5cbk1lbW9yeTogIjw8IGFicygmbWVtb3J5MSAtICZtZW1vcnkyKSAqIDEuMCAvIE1BU0soMjApIDw8IiBNQiI7CgogICAgcmV0dXJuIDA7Cn0K