#include using namespace std; bool f[100005][3][3][2],g[100005][3][3][2]; int cnt[100005]; int main() { int cases; scanf("%d",&cases); for(;cases;cases--) { int n,k; scanf("%d%d",&n,&k); for(int i=0;i<=n+1;i++) { memset(f[i],0,sizeof(f[i])); memset(g[i],0,sizeof(g[i])); cnt[i]=0; } for(int i=1;i<=3*k+1;i++) { int x; scanf("%d",&x); cnt[x]++; } f[0][0][0][0]=1; for(int i=1;i<=n;i++) for(int t1=0;t1<3;t1++) for(int t2=0;t2<3&&t1+t2<=cnt[i];t2++) { int s=cnt[i]-t1-t2; if (f[i-1][t1][t2][0]) { if (s<3) f[i][s][t1][0]=1; else f[i][s-3][t1][0]=1; if (s>=2) f[i][s-2][t1][1]=1; } if (f[i-1][t1][t2][1]) { if (s<3) f[i][s][t1][1]=1; else f[i][s-3][t1][1]=1; } } g[n+1][0][0][0]=1; for(int i=n;i>0;i--) for(int t1=0;t1<3;t1++) for(int t2=0;t2<3&&t1+t2<=cnt[i];t2++) { int s=cnt[i]-t1-t2; if (g[i+1][t1][t2][0]) { if (s<3) g[i][s][t1][0]=1; else g[i][s-3][t1][0]=1; if (s>=2) g[i][s-2][t1][1]=1; } if (g[i+1][t1][t2][1]) { if (s<3) g[i][s][t1][1]=1; else g[i][s-3][t1][1]=1; } } int ans=0; for(int i=1;i<=n;i++) { bool ok=0; for(int t1=0;t1<3;t1++) for(int t2=0;t2<3;t2++) for(int t3=0;t3<3;t3++) { if ((t1+t2+t3==cnt[i]+1||t1+t2+t3==cnt[i]-2)&&((f[i-1][t1][t2][0]&&g[i+1][t1][t3][1])||(f[i-1][t1][t2][1]&&g[i+1][t1][t3][0]))) ok=1; if ((t1+t2+t3==cnt[i]-1||t1+t2+t3==cnt[i]-4)&&(f[i-1][t1][t2][0]&&g[i+1][t1][t3][0])) ok=1; } ans+=ok; } printf("%d\n",ans); } return 0; }