#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
void Code_By_Mohamed_Khaled() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
ll n,m;
ll sol(ll p) {
ll l=1,r=n;
while (l<r) {
ll mid=l+(r-l)/2;
if (mid*(mid+1)/2>=p)r=mid;
else l=mid+1;
}
return l;
}
int main() {
Code_By_Mohamed_Khaled();
// freopen("box.in", "r", stdin);
ll t;cin>>t;
while(t--) {
cin>>n>>m;
ll l=n*(n+1)/2;
ll ans=n*(n-1)/2;
map<ll,ll>mp;
auto get= [&](ll p)->ll {
auto it=mp.find(p);
if (it !=mp.end()) return it->second;
return sol(p);
};
auto set= [&](ll p, ll v){
mp[p]=v;
};
for (ll i=1;i<=m;i++) {
ll x,y;cin>>x>>y;
if (x==y)continue;
array<ll,4>v={x-1, x, y-1, y};
ll before = 0, after = 0;
for (ll p:v) {
if (p>=1 and p+1<=l and get(p)==get(p+1)) before++;
}
ll vx=get(x),vy=get(y);
set(x,vy);
set(y,vx);
for (ll p:v) {
if (p>=1 and p+1<=l and get(p)==get(p+1))after++;
}
ans+=(after-before);
}
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIENvZGVfQnlfTW9oYW1lZF9LaGFsZWQoKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsICJyIiwgc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0LnR4dCIsICJ3Iiwgc3Rkb3V0KTsKI2VuZGlmCn0KbGwgbixtOwpsbCBzb2wobGwgcCkgewogICAgbGwgbD0xLHI9bjsKICAgIHdoaWxlIChsPHIpIHsKICAgICAgICBsbCBtaWQ9bCsoci1sKS8yOwogICAgICAgIGlmIChtaWQqKG1pZCsxKS8yPj1wKXI9bWlkOwogICAgICAgIGVsc2UgbD1taWQrMTsKICAgIH0KICAgIHJldHVybiBsOwp9CmludCBtYWluKCkgewogICAgQ29kZV9CeV9Nb2hhbWVkX0toYWxlZCgpOwogICAgLy8gZnJlb3BlbigiYm94LmluIiwgInIiLCBzdGRpbik7CiAgICBsbCB0O2Npbj4+dDsKICAgIHdoaWxlKHQtLSkgewogICAgICAgIGNpbj4+bj4+bTsKICAgICAgICBsbCBsPW4qKG4rMSkvMjsKICAgICAgICBsbCBhbnM9bioobi0xKS8yOwogICAgICAgIG1hcDxsbCxsbD5tcDsKICAgICAgICBhdXRvIGdldD0gWyZdKGxsIHApLT5sbCB7CiAgICAgICAgICAgIGF1dG8gaXQ9bXAuZmluZChwKTsKICAgICAgICAgICAgaWYgKGl0ICE9bXAuZW5kKCkpIHJldHVybiBpdC0+c2Vjb25kOwogICAgICAgICAgICByZXR1cm4gc29sKHApOwogICAgICAgIH07CiAgICAgICAgYXV0byBzZXQ9IFsmXShsbCBwLCBsbCB2KXsKICAgICAgICAgICAgbXBbcF09djsKICAgICAgICB9OwogICAgICAgIGZvciAobGwgaT0xO2k8PW07aSsrKSB7CiAgICAgICAgICAgIGxsIHgseTtjaW4+Png+Pnk7CiAgICAgICAgICAgIGlmICh4PT15KWNvbnRpbnVlOwogICAgICAgICAgICBhcnJheTxsbCw0PnY9e3gtMSwgeCwgeS0xLCB5fTsKICAgICAgICAgICAgbGwgYmVmb3JlID0gMCwgYWZ0ZXIgPSAwOwogICAgICAgICAgICBmb3IgKGxsIHA6dikgewogICAgICAgICAgICAgICAgaWYgKHA+PTEgYW5kIHArMTw9bCBhbmQgZ2V0KHApPT1nZXQocCsxKSkgYmVmb3JlKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbGwgdng9Z2V0KHgpLHZ5PWdldCh5KTsKICAgICAgICAgICAgc2V0KHgsdnkpOwogICAgICAgICAgICBzZXQoeSx2eCk7CiAgICAgICAgICAgIGZvciAobGwgcDp2KSB7CiAgICAgICAgICAgICAgICBpZiAocD49MSBhbmQgcCsxPD1sIGFuZCBnZXQocCk9PWdldChwKzEpKWFmdGVyKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYW5zKz0oYWZ0ZXItYmVmb3JlKTsKICAgICAgICB9CiAgICAgICAgY291dDw8YW5zPDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0=