#include <bits/stdc++.h>
using namespace std;
const int N = (int)1e6 + 10;
const int MOD = (int)1e9 + 7;
int n;
long long a[N], f[2][N];
int main() {
  ios::sync_with_stdio(false);
  int T;
  cin >> T;
  while (T--) {
    int q;
    cin >> n >> q;
    a[0] = a[n + 1] = 0;
    for (register int i = 1; i <= n; i++) cin >> a[i];
    long long ans = 0;
    for (int i = 1; i <= n; i++) ans += max(a[i] - a[i - 1], 0LL);
    cout << ans << "\n";
    while (q--) {
      int l, r;
      cin >> l >> r;
      if (l + 1 == r) {
        ans -= max(a[l] - a[l - 1], 0LL) + max(a[l + 1] - a[l], 0LL) +
               max(a[r + 1] - a[r], 0LL);
        swap(a[l], a[r]);
        ans += max(a[l] - a[l - 1], 0LL) + max(a[l + 1] - a[l], 0LL) +
               max(a[r + 1] - a[r], 0LL);
      } else {
        ans -= max(a[l] - a[l - 1], 0LL) + max(a[l + 1] - a[l], 0LL);
        ans -= max(a[r] - a[r - 1], 0LL) + max(a[r + 1] - a[r], 0LL);
        swap(a[l], a[r]);
        ans += max(a[l] - a[l - 1], 0LL) + max(a[l + 1] - a[l], 0LL);
        ans += max(a[r] - a[r - 1], 0LL) + max(a[r + 1] - a[r], 0LL);
      }
      cout << ans << "\n";
    }
  }
}
