#include<bits/stdc++.h>
using namespace std;
int t,n,a[100005],b[100005],c[100005],d[100005],ra[100005],rb[100005];
int sa[100005][2],sb[100005][2],pra[100005][2],prb[100005][2];
string s1,s2,s3,s4;
int main()
{
freopen("edit.in","r",stdin);
freopen("edit.out","w",stdout);
cin>>t;
while(t--)
{
cin>>n>>s1>>s2>>s3>>s4;
for(int i=1;i<=n;i++)
{
a[i]=s1[i-1]-'0',b[i]=s2[i-1]-'0',c[i]=s3[i-1]-'0',d[i]=s4[i-1]-'0';
pra[i][0]=pra[i-1][0]+(a[i]==0);
pra[i][1]=pra[i-1][1]+(a[i]==1);
prb[i][0]=prb[i-1][0]+(b[i]==0);
prb[i][1]=prb[i-1][1]+(b[i]==1);
}
if(n==1)c[1]=d[1]=0;
if(c[2]==0)c[1]=0;if(c[n-1]==0)c[n]=0;
if(d[2]==0)d[1]=0;if(c[n-1]==0)d[n]=0;
for(int i=2;i<n;i++)
{
if(c[i-1]==0&&c[i+1]==0)c[i]=0;
if(d[i-1]==0&&d[i+1]==0)d[i]=0;
}
for(int i=n;i>=1;i--)
{
if(i==n)ra[i]=i;
else if(c[i+1]!=c[i]) ra[i]=i;
else ra[i]=ra[i+1];
sa[i][0]=sa[i][1]=sb[i][0]=sb[i][1]=0;
}
for(int i=n;i>=1;i--)
{
if(i==n)rb[i]=i;
else if(d[i+1]!=d[i]) rb[i]=i;
else rb[i]=rb[i+1];
}
for(int i=1;i<=n;i++)
sa[ra[i]][a[i]]++,sb[rb[i]][b[i]]++;
int p=1,q=1,sum=0,st=0;
while(p!=n+1||q!=n+1)
{
if(ra[p]<rb[q])
{
if(c[p]==0&&d[q]==0)
{
for(int i=p;i<=ra[p];i++)
sum+=(a[i]==b[i]),sa[ra[i]][a[i]]--,sb[rb[i]][b[i]]--;
}
else if(d[q]==1)
{
int hhz=min(sa[ra[p]][0],sb[rb[q]][0]);
int haz=min(sa[ra[p]][1],sb[rb[q]][1]);
sa[ra[p]][0]-=hhz,sa[ra[p]][1]-=haz;
sb[rb[q]][0]-=hhz,sb[rb[q]][1]-=haz;
sum+=hhz+haz;
int tian=sa[ra[p]][0]+sa[ra[p]][1];
if(tian!=0)
{
if(sb[rb[q]][0]>0)sb[rb[q]][0]-=tian;
else sb[rb[q]][1]-=tian;
}
}
else
{
int qjcnt0=prb[ra[p]][0]-prb[p-1][0];
int qjcnt1=prb[ra[p]][1]-prb[p-1][1];
int hhz=min(sa[ra[p]][0],qjcnt0);
int haz=min(sa[ra[p]][1],qjcnt1);
sa[ra[p]][0]-=hhz,sa[ra[p]][1]-=haz;
sb[rb[q]][0]-=qjcnt0,sb[rb[q]][1]-=qjcnt1;
sum+=hhz+haz;
}
}
else if(ra[p]>rb[q])
{
if(c[p]==0&&d[q]==0)
{
for(int i=q;i<=rb[q];i++)
sum+=(a[i]==b[i]),sa[ra[i]][a[i]]--,sb[rb[i]][b[i]]--;
}
else if(c[p]==1)
{
int hhz=min(sa[ra[p]][0],sb[rb[q]][0]);
int haz=min(sa[ra[p]][1],sb[rb[q]][1]);
sa[ra[p]][0]-=hhz,sa[ra[p]][1]-=haz;
sb[rb[q]][0]-=hhz,sb[rb[q]][1]-=haz;
sum+=hhz+haz;
int tian=sb[rb[q]][0]+sb[rb[q]][1];
if(tian!=0)
{
if(sa[ra[p]][0]>0)sa[ra[p]][0]-=tian;
else sa[ra[p]][1]-=tian;
}
}
else
{
int qjcnt0=pra[rb[q]][0]-pra[q-1][0];
int qjcnt1=pra[rb[q]][1]-pra[q-1][1];
int hhz=min(sb[rb[q]][0],qjcnt0);
int haz=min(sb[rb[q]][1],qjcnt1);
sa[ra[p]][0]-=qjcnt0,sa[ra[p]][1]-=qjcnt1;
sb[rb[q]][0]-=hhz,sb[rb[q]][1]-=haz;
sum+=hhz+haz;
}
}
else if(c[p]==0&&d[q]==0)
{
for(int i=p;i<=ra[p];i++)
sum+=(a[i]==b[i]);
}
else
{
int hhz=min(sa[ra[p]][0],sb[rb[q]][0]);
int haz=min(sa[ra[p]][1],sb[rb[q]][1]);
sa[ra[p]][0]-=hhz,sa[ra[p]][1]-=hhz;
sb[rb[q]][0]-=haz,sb[rb[q]][1]-=haz;
sum+=hhz+haz;
}
p=q=min(ra[p],rb[q])+1;
}
cout<<sum<<endl;
}
return 0;
}