#include <iostream>
#include <climits>
#include <vector>
#include <algorithm>
using namespace std;
bool mycompare(int a, int b) {
return a>b;
}
int main() {
int t;
cin >> t;
while(t--) {
int k,n;
cin >> k >> n;
int arr[n];
for(int i=0; i<n; i++)
cin >> arr[i];
int local_min = 0, local_max = 0;
int ptr=0;
vector<int> trans;
while(ptr<(n-1)) {
//local minima
while( ptr<(n-1) && arr[ptr]>arr[ptr+1])
ptr++;
if(ptr == (n-1)){
local_min = -1;
break;
}
local_min = ptr;
//local max
while( ptr<(n-1) && arr[ptr]<arr[ptr+1])
ptr++;
local_max = ptr;
int tran = arr[local_max]-arr[local_min];
trans.push_back(tran);
}
if(trans.size() <= k){
int ans = 0;
for(int i=0; i<trans.size(); i++){
ans += trans[i];
}
cout << ans << endl;
}else {
int ans=0;
sort(trans.begin(), trans.end(), mycompare);
for(int i=0; i<k; i++) {
ans += trans[i];
}
cout << ans << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpib29sIG15Y29tcGFyZShpbnQgYSwgaW50IGIpIHsKCXJldHVybiBhPmI7Cn0KCmludCBtYWluKCkgewoKCWludCB0OwoJY2luID4+IHQ7Cgl3aGlsZSh0LS0pIHsKCQlpbnQgayxuOwoJCWNpbiA+PiBrID4+IG47CgoJCWludCBhcnJbbl07CgkJZm9yKGludCBpPTA7IGk8bjsgaSsrKSAKCQkJY2luID4+IGFycltpXTsKCgkJaW50IGxvY2FsX21pbiA9IDAsIGxvY2FsX21heCA9IDA7CgkJaW50IHB0cj0wOwoJCXZlY3RvcjxpbnQ+IHRyYW5zOwoJCXdoaWxlKHB0cjwobi0xKSkgewoJCQkvL2xvY2FsIG1pbmltYQoJCQl3aGlsZSggcHRyPChuLTEpICYmIGFycltwdHJdPmFycltwdHIrMV0pCgkJCQlwdHIrKzsKCQkJaWYocHRyID09IChuLTEpKXsKCQkJCWxvY2FsX21pbiA9IC0xOwoJCQkJYnJlYWs7CgkJCX0KCgkJCWxvY2FsX21pbiA9IHB0cjsKCgkJCS8vbG9jYWwgbWF4CgkJCXdoaWxlKCBwdHI8KG4tMSkgJiYgYXJyW3B0cl08YXJyW3B0cisxXSkKCQkJCXB0cisrOwoKCQkJbG9jYWxfbWF4ID0gcHRyOwoJCQlpbnQgdHJhbiA9IGFycltsb2NhbF9tYXhdLWFycltsb2NhbF9taW5dOwoJCQl0cmFucy5wdXNoX2JhY2sodHJhbik7CgkJfQoKCQlpZih0cmFucy5zaXplKCkgPD0gayl7CgkJCWludCBhbnMgPSAwOwoJCQlmb3IoaW50IGk9MDsgaTx0cmFucy5zaXplKCk7IGkrKyl7CgkJCQlhbnMgKz0gdHJhbnNbaV07CgkJCX0KCQkJY291dCA8PCBhbnMgPDwgZW5kbDsKCQl9ZWxzZSB7CgkJCWludCBhbnM9MDsKCQkJc29ydCh0cmFucy5iZWdpbigpLCB0cmFucy5lbmQoKSwgbXljb21wYXJlKTsKCQkJZm9yKGludCBpPTA7IGk8azsgaSsrKSB7CgkJCQlhbnMgKz0gdHJhbnNbaV07CgkJCX0KCQkJY291dCA8PCBhbnMgPDwgZW5kbDsKCQl9CgoJfQoKCXJldHVybiAwOwp9