#include <bits/stdc++.h>
int t, n, q, x, y;
long long ans;
int a[1000000];
int main() {
  scanf("%d", &t);
  while (t--) {
    scanf("%d%d", &n, &q);
    ans = a[n + 1] = 0;
    for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
    for (int i = 1; i <= n; ++i)
      ans += (0 > a[i] - a[i - 1] ? 0 : a[i] - a[i - 1]);
    printf("%lld\n", ans);
    while (q--) {
      scanf("%d%d", &x, &y);
      if (x == y) {
        printf("%lld\n", ans);
        continue;
      }
      if (x + 1 == y) {
        ans -= (0 > a[x] - a[x - 1] ? 0 : a[x] - a[x - 1]) +
               (0 > a[y] - a[x] ? 0 : a[y] - a[x]) +
               (0 > a[y + 1] - a[y] ? 0 : a[y + 1] - a[y]);
        (a[x] ^= a[y] ^= a[x] ^= a[y]);
        ;
        ans += (0 > a[x] - a[x - 1] ? 0 : a[x] - a[x - 1]) +
               (0 > a[y] - a[x] ? 0 : a[y] - a[x]) +
               (0 > a[y + 1] - a[y] ? 0 : a[y + 1] - a[y]);
        ;
        printf("%lld\n", ans);
        continue;
      }
      ans -= (0 > a[x] - a[x - 1] ? 0 : a[x] - a[x - 1]) +
             (0 > a[x + 1] - a[x] ? 0 : a[x + 1] - a[x]);
      ans -= (0 > a[y] - a[y - 1] ? 0 : a[y] - a[y - 1]) +
             (0 > a[y + 1] - a[y] ? 0 : a[y + 1] - a[y]);
      (a[x] ^= a[y] ^= a[x] ^= a[y]);
      ;
      ans += (0 > a[x] - a[x - 1] ? 0 : a[x] - a[x - 1]) +
             (0 > a[x + 1] - a[x] ? 0 : a[x + 1] - a[x]);
      ans += (0 > a[y] - a[y - 1] ? 0 : a[y] - a[y - 1]) +
             (0 > a[y + 1] - a[y] ? 0 : a[y + 1] - a[y]);
      printf("%lld\n", ans);
    }
  }
  return 0;
}
