#include <bits/stdc++.h>
using namespace std;
const int M = 998244353;
const int MAX = (3e5) + 10;
const int inf = (1e9);
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
int n, ara[MAX];
long long val;
void update(int i, int c) {
  if (i < 0) {
    return;
  }
  int x = ara[i] - ara[i + 1];
  if (x > 0) {
    val += x * c;
  }
}
int main() {
  ios::sync_with_stdio(false);
  int tc;
  cin >> tc;
  for (int tt = 1; tt <= tc; tt++) {
    int x, y, q, u, v;
    cin >> n >> q;
    for (int i = 0; i <= n - 1; i++) {
      cin >> ara[i];
    }
    val = 0;
    ara[n] = 0;
    for (int i = 0; i <= n - 1; i++) {
      update(i, 1);
    }
    cout << val << endl;
    for (int oo = 0; oo <= q - 1; oo++) {
      cin >> u >> v;
      u--;
      v--;
      for (int i = u - 1; i <= u; i++) {
        update(i, -1);
      }
      for (int i = v - 1; i <= v; i++) {
        if (i < u - 1 || i > u) {
          update(i, -1);
        }
      }
      swap(ara[u], ara[v]);
      for (int i = u - 1; i <= u; i++) {
        update(i, 1);
      }
      for (int i = v - 1; i <= v; i++) {
        if (i < u - 1 || i > u) {
          update(i, 1);
        }
      }
      cout << val << endl;
    }
  }
  return 0;
}
