#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int T,n,a[N],b[N],ta[N],tb[N],fa[N],fb[N],cta[N][2],ctb[N][2];
int fd(int x,int f[]){
	if(x==f[x])return x;
	return f[x]=fd(f[x],f);
}
int main(){
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	scanf("%d",&T);
	while(T--){
		scanf("%d",&n);
		memset(cta,0,sizeof cta);
		memset(ctb,0,sizeof ctb);
		for(int i=1;i<=n;i++){
			fa[i]=fb[i]=i; 
		}
		for(int i=1;i<=n;i++){
			scanf("%1d",&a[i]);
		}
		for(int i=1;i<=n;i++){
			scanf("%1d",&b[i]);
		}
		for(int i=1;i<=n;i++){
			scanf("%1d",&ta[i]);
		}
		for(int i=1;i<=n;i++){
			scanf("%1d",&tb[i]);
		}
		for(int i=2;i<=n;i++){
			if(ta[i-1]&&ta[i]){
				fa[fd(i,fa)]=fd(i-1,fa);
			}
			if(tb[i-1]&&tb[i]){
				fb[fd(i,fb)]=fd(i-1,fb);
			}
		}
		for(int i=1;i<=n;i++){
			cta[fd(i,fa)][a[i]]++;
			ctb[fd(i,fb)][b[i]]++;
		}
		int ans=0;
		for(int i=1;i<=n;i++){
			int mn0=min(cta[fd(i,fa)][0],ctb[fd(i,fb)][0]),mn1=min(cta[fd(i,fa)][1],ctb[fd(i,fb)][1]);
			if(mn0)cta[fd(i,fa)][0]--,ctb[fd(i,fb)][0]--,ans++;
			else if(mn1)cta[fd(i,fa)][1]--,ctb[fd(i,fb)][1]--,ans++;
		}
		printf("%d\n",ans);
	}
	return 0;
}
