#include <bits/stdc++.h>
using namespace std;
void insert(long long int a[], long long int i, long long int n,
            long long int &ans) {
  if (i == 0) {
    if (i + 1 < n && a[i] > a[i + 1]) ans += a[i];
  } else if (i == n - 1) {
    if (i - 1 >= 0 && a[i] > a[i - 1]) ans += a[i];
  } else if (a[i] > a[i - 1] && a[i] > a[i + 1])
    ans += a[i];
  else if (a[i] < a[i - 1] && a[i] < a[i + 1])
    ans -= a[i];
}
void erase(long long int a[], long long int i, long long int n,
           long long int &ans) {
  if (i == 0) {
    if (i + 1 < n && a[i] > a[i + 1]) ans -= a[i];
  } else if (i == n - 1) {
    if (i - 1 >= 0 && a[i] > a[i - 1]) ans -= a[i];
  } else if (a[i] > a[i - 1] && a[i] > a[i + 1])
    ans -= a[i];
  else if (a[i] < a[i - 1] && a[i] < a[i + 1])
    ans += a[i];
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  int t;
  cin >> t;
  while (t--) {
    long long int n, q, i, sum = 0, f = 0;
    cin >> n >> q;
    long long int a[n];
    for (i = 0; i < n; i++) {
      cin >> a[i];
    }
    if (n == 1) {
      sum += a[0];
    } else {
      if (a[0] > a[1]) {
        f = 0;
        insert(a, 0, n, sum);
      } else {
        f = 1;
      }
      for (i = 1; i < n; i++) {
        if ((i + 1) < n) {
          if (a[i] > a[i - 1] && a[i] > a[i + 1] && f == 1) {
            f = 0;
            insert(a, i, n, sum);
          } else if (a[i] < a[i - 1] && a[i] < a[i + 1] && f == 0) {
            f = 1;
            insert(a, i, n, sum);
          }
        } else if (i == n - 1) {
          if (f == 1) {
            insert(a, i, n, sum);
          }
        }
      }
    }
    cout << sum << "\n";
    while (q--) {
      long long int l, r, t1, t2;
      cin >> l >> r;
      t1 = a[l - 1];
      t2 = a[r - 1];
      vector<long long int> vv;
      if (l - 2 >= 0) {
        vv.push_back(l - 2);
        erase(a, l - 2, n, sum);
      }
      vv.push_back(l - 1);
      erase(a, l - 1, n, sum);
      if (l < n) {
        vv.push_back(l);
        erase(a, l, n, sum);
      }
      if (l != r) {
        if (r - 2 >= 0) {
          int k = 0;
          for (i = 0; i < vv.size(); i++) {
            if (vv[i] == r - 2) {
              k = 1;
              break;
            }
          }
          if (k == 0) {
            vv.push_back(r - 2);
            erase(a, r - 2, n, sum);
          }
        }
        int k = 0;
        for (i = 0; i < vv.size(); i++) {
          if (vv[i] == r - 1) {
            k = 1;
            break;
          }
        }
        if (k == 0) {
          vv.push_back(r - 1);
          erase(a, r - 1, n, sum);
        }
        if (r < n) {
          int k = 0;
          for (i = 0; i < vv.size(); i++) {
            if (vv[i] == r) {
              k = 1;
              break;
            }
          }
          if (k == 0) {
            vv.push_back(r);
            erase(a, r, n, sum);
          }
        }
      }
      a[l - 1] = t2;
      a[r - 1] = t1;
      for (i = 0; i < vv.size(); i++) {
        insert(a, vv[i], n, sum);
      }
      cout << sum << "\n";
    }
  }
  return 0;
}
