#include<iostream>
#include<stack>
#include<cstring>
using namespace std;
struct point{
int x,y;
}pt;
int main()
{
int t;
long n,k;
cin>>t;
while(t--){
cin>>n>>k;
bool visited[n+1][n+1];
for(long u=1;u<=n;u++)
for(long v=1;v<=n;v++)
visited[u][v]=false;
stack<point> qu;
if(!k)
cout<<"0\n";
else{
while(k--){
cin>>pt.x>>pt.y;
qu.push(pt);
}
long c=0;
while(!qu.empty()){
int i=qu.top().x;
int j=qu.top().y;
if(!visited[i][j]){
visited[i][j]=true;
c++;
int p=i,q=j;
p--;
q++;
while(p>=1 && q<=n){
if(!visited[p][q]){
visited[p][q]=true;
c++;
}
p--;
q++;
}
p=i,q=j;
p--;
q--;
while(p>=1 && q>=1){
if(!visited[p][q]){
visited[p][q]=true;
c++;
}
p--;
q--;
}
p=i,q=j;
p++;
q++;
while(p<=n && q<=n){
if(!visited[p][q]){
visited[p][q]=true;
c++;
}
p++;
q++;
}
p=i,q=j;
p++;
q--;
while(p<=n && q>=1){
if(!visited[p][q]){
visited[p][q]=true;
c++;
}
p++;
q--;
}
}
qu.pop();
}
cout<<n*n-c<<"\n";
}
}
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHN0YWNrPgojaW5jbHVkZTxjc3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IHBvaW50ewogICAgIGludCB4LHk7Cn1wdDsKaW50IG1haW4oKQp7CiAgICAgaW50IHQ7CiAgICAgbG9uZyBuLGs7CiAgICAgY2luPj50OwogICAgIHdoaWxlKHQtLSl7CiAgICAgICAgICBjaW4+Pm4+Pms7CiAgICAgICAgICBib29sIHZpc2l0ZWRbbisxXVtuKzFdOwogICAgICAgICAgZm9yKGxvbmcgdT0xO3U8PW47dSsrKQogICAgICAgICAgICAgICBmb3IobG9uZyB2PTE7djw9bjt2KyspCiAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFt1XVt2XT1mYWxzZTsKICAgICAgICAgIHN0YWNrPHBvaW50PiBxdTsKICAgICAgICAgIGlmKCFrKQogICAgICAgICAgICAgICBjb3V0PDwiMFxuIjsKICAgICAgICAgIGVsc2V7CiAgICAgICAgICB3aGlsZShrLS0pewogICAgICAgICAgICAgICBjaW4+PnB0Lng+PnB0Lnk7CiAgICAgICAgICAgICAgIHF1LnB1c2gocHQpOwogICAgICAgICAgfQogICAgICAgICAgbG9uZyBjPTA7CiAgICAgICAgICB3aGlsZSghcXUuZW1wdHkoKSl7CiAgICAgICAgICAgICAgIGludCBpPXF1LnRvcCgpLng7CiAgICAgICAgICAgICAgIGludCBqPXF1LnRvcCgpLnk7CiAgICAgICAgICAgICAgIGlmKCF2aXNpdGVkW2ldW2pdKXsKICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW2ldW2pdPXRydWU7CiAgICAgICAgICAgICAgICAgICAgYysrOwogICAgICAgICAgICAgICAgICAgIGludCBwPWkscT1qOwogICAgICAgICAgICAgICAgICAgIHAtLTsKICAgICAgICAgICAgICAgICAgICBxKys7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUocD49MSAmJiBxPD1uKXsKICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCF2aXNpdGVkW3BdW3FdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlzaXRlZFtwXVtxXT10cnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjKys7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICBwLS07CiAgICAgICAgICAgICAgICAgICAgICAgICBxKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHA9aSxxPWo7CiAgICAgICAgICAgICAgICAgICAgcC0tOwogICAgICAgICAgICAgICAgICAgIHEtLTsKICAgICAgICAgICAgICAgICAgICB3aGlsZShwPj0xICYmIHE+PTEpewogICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXZpc2l0ZWRbcF1bcV0pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW3BdW3FdPXRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICBwLS07CiAgICAgICAgICAgICAgICAgICAgICAgICBxLS07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHA9aSxxPWo7CiAgICAgICAgICAgICAgICAgICAgcCsrOwogICAgICAgICAgICAgICAgICAgIHErKzsKICAgICAgICAgICAgICAgICAgICB3aGlsZShwPD1uICYmIHE8PW4pewogICAgICAgICAgICAgICAgICAgICAgICAgaWYoIXZpc2l0ZWRbcF1bcV0pewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNpdGVkW3BdW3FdPXRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMrKzsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgIHArKzsKICAgICAgICAgICAgICAgICAgICAgICAgIHErKzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcD1pLHE9ajsKICAgICAgICAgICAgICAgICAgICBwKys7CiAgICAgICAgICAgICAgICAgICAgcS0tOwogICAgICAgICAgICAgICAgICAgIHdoaWxlKHA8PW4gJiYgcT49MSl7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZighdmlzaXRlZFtwXVtxXSl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2l0ZWRbcF1bcV09dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYysrOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgIHArKzsKICAgICAgICAgICAgICAgICAgICAgICAgIHEtLTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgcXUucG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgICBjb3V0PDxuKm4tYzw8IlxuIjsKICAgICAgICAgIH0KICAgICB9Cn0K