#include <bits/stdc++.h>
using namespace std;
const long long M = 1e15 + 7;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long tt;
  cin >> tt;
  while (tt--) {
    int n, q;
    cin >> n >> q;
    long long a[n];
    for (int i = 0; i < n; i++) {
      cin >> a[i];
    }
    long long ans = 0;
    for (int i = 1; i < n; i++) {
      if (a[i] < a[i - 1]) ans += a[i - 1] - a[i];
      if (i == n - 1) ans += a[i];
    }
    ans = max(ans, a[0]);
    cout << ans << endl;
    while (q--) {
      int l, r;
      cin >> l >> r;
      --l, --r;
      if (l == r) {
        cout << ans << "\n";
        continue;
      }
      if (l == 0) {
        if (a[1] < a[0]) ans -= a[0] - a[1];
      } else {
        if (a[l] < a[l - 1]) ans -= a[l - 1] - a[l];
        if (a[l] > a[l + 1]) ans -= a[l] - a[l + 1];
      }
      if (r == n - 1) {
        ans -= a[r];
        if (a[r] < a[r - 1]) ans -= a[r - 1] - a[r];
      } else {
        if (a[r] < a[r - 1]) ans -= a[r - 1] - a[r];
        if (a[r] > a[r + 1]) ans -= a[r] - a[r + 1];
      }
      if (r == l + 1 && a[r] < a[l]) ans += a[l] - a[r];
      swap(a[l], a[r]);
      if (l == 0) {
        if (a[1] < a[0]) ans += a[0] - a[1];
      } else {
        if (a[l] < a[l - 1]) ans += a[l - 1] - a[l];
        if (a[l] > a[l + 1]) ans += a[l] - a[l + 1];
      }
      if (r == n - 1) {
        ans += a[r];
        if (a[r] < a[r - 1]) ans += a[r - 1] - a[r];
      } else {
        if (a[r] < a[r - 1]) ans += a[r - 1] - a[r];
        if (a[r] > a[r + 1]) ans += a[r] - a[r + 1];
      }
      if (r == l + 1 && a[r] < a[l]) ans -= a[l] - a[r];
      cout << ans << "\n";
    }
  }
}
