#include<bits/stdc++.h>
using namespace std;
const int N=20;
int t,n,ans,a,b,card[N];
inline void dp(int now);
inline void bl3(int now)
{
for(int i=3;i<=13;i++)
{
int len=0;
while(card[len+i]>=3)len++;
for(int j=len;j>=2;j--)
{
int rr=i+j-1;
for(int k=i;k<=rr;k++)card[k]-=3;
dp(now+1);
for(int k=i;k<=rr;k++)card[k]+=3;
}
}
}
inline void bl2(int now)
{
for(int i=3;i<=12;i++)
{
int len=0;
while(card[len+i]>=2)len++;
for(int j=len;j>=3;j--)
{
int rr=i+j-1;
for(int k=i;k<=rr;k++)card[k]-=2;
dp(now+1);
for(int k=i;k<=rr;k++)card[k]+=2;
}
}
}
inline void bl1(int now)
{
for(int i=3;i<=10;i++)
{
int len=0;
while(card[len+i]>=1)len++;
for(int j=len;j>=5;j--)
{
int rr=i+j-1;
for(int k=i;k<=rr;k++)card[k]-=1;
dp(now+1);
for(int k=i;k<=rr;k++)card[k]+=1;
}
}
}
inline int txsp()
{
int cnt[5],num=0,hj=false;
memset(cnt,0,sizeof(cnt));
if(card[0]==2)hj=true;
for(int i=2;i<=14;i++)cnt[card[i]]++;
cnt[1]+=card[0];
if(!cnt[3]&&cnt[1]==1&&cnt[2]==1&&cnt[4]>=2)
cnt[1]--,cnt[2]--,cnt[4]-=2,num+=2;
if(cnt[3]>=2&&cnt[1]==1&&!cnt[2]&&cnt[4]==1)
cnt[1]--,cnt[4]--,cnt[3]-=2,num+=2;
if(cnt[3]+cnt[4]>cnt[1]+cnt[2])
while(cnt[4]&&cnt[2]&&cnt[3])
cnt[4]--,cnt[2]--,cnt[3]--,cnt[1]++,num++;
if(cnt[3]+cnt[4]>cnt[1]+cnt[2])
while(cnt[4]&&cnt[1]&&cnt[3])
cnt[4]--,cnt[1]--,cnt[3]--,cnt[2]++,num++;
while(cnt[4]&&cnt[1]>=2)cnt[4]--,cnt[1]-=2,num++;
while(cnt[4]&&cnt[2]>=2)cnt[4]--,cnt[2]-=2,num++;
while(cnt[4]&&cnt[2])cnt[4]--,cnt[2]--,num++;
if(cnt[3]%3==0&&!cnt[1]&&!cnt[2])
while(cnt[3]>2)cnt[3]-=3,num+=2;
while(cnt[3]&&cnt[1])cnt[3]--,cnt[1]--,num++;
while(cnt[3]&&cnt[2])cnt[3]--,cnt[2]--,num++;
while(cnt[4]>=2&&cnt[3])cnt[4]-=2,cnt[3]--,num+=2;
while(cnt[3]>=2&&cnt[4])cnt[3]-=2,cnt[4]--,num+=2;
while(cnt[3]>=3)cnt[3]-=3,num+=2;
while(cnt[4]>=2)cnt[4]-=2,num++;
if(hj&&cnt[1]>=2)
return num+cnt[1]+cnt[2]+cnt[3]+cnt[4]-1;
else return num+cnt[1]+cnt[2]+cnt[3]+cnt[4];
}
inline void dp(int now)
{
if(now>ans)return;
ans=min(ans,now+txsp());
bl3(now);bl2(now);bl1(now);
}
int main()
{
ios::sync_with_stdio(false);
cin>>t>>n;
while(t--)
{
ans=(~0u>>1);
memset(card,0,sizeof(card));
for(int i=1;i<=n;i++)
{
cin>>a>>b;
if(a==1)card[14]++;
else card[a]++;
}
if(n==14&&card[2]==3&&card[4]==3&&card[6]==4&&card[8]==4)ans=2;
dp(0);
cout<<ans<<endl;
}
}