#include <bits/stdc++.h>
using namespace std;
class SegmentTree {
 private:
  int n_nodes, n, n_leaves, first_leaf;
  vector<array<long long, 4> > nodes;

 public:
  SegmentTree(const vector<int>& a) {
    n = a.size();
    int depth = 0;
    while ((1 << depth) < n) {
      depth++;
    }
    n_leaves = 1 << depth;
    first_leaf = n_leaves - 1;
    n_nodes = first_leaf + n_leaves;
    nodes.resize(n_nodes);
    for (int i = 0; i < n_leaves; ++i) {
      array<long long, 4>& node = nodes[first_leaf + i];
      node[0] = 0;
      if (i < n) {
        node[1] = a[i];
        node[2] = -a[i];
      } else {
        node[1] = 0;
        node[2] = 0;
      }
      node[3] = 0;
    }
    for (int i = first_leaf - 1; i >= 0; --i) {
      merge(i);
    }
  }
  void merge(int i) {
    const array<long long, 4>& node1 = nodes[i * 2 + 1];
    const array<long long, 4>& node2 = nodes[i * 2 + 2];
    array<long long, 4>& node = nodes[i];
    node[0] = max(node1[0] + node2[0], node1[1] + node2[2]);
    node[1] = max(node1[0] + node2[1], node1[1] + node2[3]);
    node[2] = max(node1[2] + node2[0], node1[3] + node2[2]);
    node[3] = max(node1[2] + node2[1], node1[3] + node2[3]);
  }
  long long get_best() {
    const array<long long, 4>& node = nodes[0];
    return max(node[0], node[1]);
  }
  void update(int pos, int value) {
    int idx = first_leaf + pos;
    array<long long, 4>& node = nodes[idx];
    node[1] = value;
    node[2] = -value;
    while (idx > 0) {
      idx = (idx - 1) / 2;
      merge(idx);
    }
  }
};
void test_case() {
  int n, q;
  cin >> n >> q;
  vector<int> a(n);
  for (int i = 0; i < n; ++i) {
    cin >> a[i];
  }
  vector<int> l(q), r(q);
  for (int i = 0; i < q; ++i) {
    cin >> l[i] >> r[i];
    l[i]--;
    r[i]--;
  }
  SegmentTree tree(a);
  cout << tree.get_best() << endl;
  for (int i = 0; i < q; ++i) {
    swap(a[l[i]], a[r[i]]);
    tree.update(l[i], a[l[i]]);
    tree.update(r[i], a[r[i]]);
    cout << tree.get_best() << endl;
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int t;
  cin >> t;
  for (int i = 0; i < t; ++i) {
    test_case();
  }
}
