#include<bits/stdc++.h>
#define debug cout<<"What can i say"<<endl
using namespace std;
const int N=100005;
int t;
char s1[N],s2[N];
char t1[N],t2[N];
char sld1[N],sld2[N];
long long int oe1,oe2;
int num;
int n;
int maxn;
long long int noe1,noe2,nzr2,nzr1,zr2,zr1;
int main(){
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	cin>>t;	
	while(t--){
		num=0;
		oe1=0;
		oe2=0;
		zr1=0;
		zr2=0;
		nzr1=0;
		nzr2=0;
		noe1=0;
		noe2=0;
		maxn=0;
		cin>>n;
		for(int i=1;i<=n;i++){
			sld1[i]='x';
			sld2[i]='x';
		}
		for(int i=1;i<=n;i++){
			cin>>s1[i];
			if(s1[i]=='1')oe1++;
			else zr1++;
		}
		for(int i=1;i<=n;i++){
			cin>>s2[i];
			if(s2[i]=='1')oe2++;
			else zr2++;
		}//输入 并将1 0的个数统计起来 
		for(int i=1;i<=n;i++){
			cin>>t1[i];
			if(t1[i]=='0'){
				//debug;
				sld1[i]=s1[i];
				if(s1[i]=='1'){
					oe1--;
					noe1++;
				}
				else{
					zr1--;
					nzr1++;
				}
			} 
		}
		for(int i=1;i<=n;i++){
			cin>>t2[i];
			if(t2[i]=='0') {
				//debug;
				sld2[i]=s2[i];
				if(s2[i]=='1'){
					oe2--;
					noe2++;
				}
				else{
					zr2--;
					nzr2++;
				}
			}
		}//将固定的数分离
		/**/for(int i=1;i<=n;i++){
			//debug;
			if(sld1[i]==sld2[i]&&sld1[i]!='x'){
				num++;
				if(sld1[i]=='1'){
					noe1--;
					noe2--;
				}
				else{
					nzr1--;
					nzr2--;
					
				}
			}
		} //在固定的数中找相同 
		
		if(noe1>=oe2){
			num+=oe2;
			oe2=0;
			zr2-=noe1;
			zr2+=oe2;
			if(zr2<0) zr2=0;
		}
		
		else{
			num+=noe1;
			oe2-=noe1;
		} 
		//3
		if(noe2>=oe1){
			num+=oe1;
			oe1=0;
			zr1-=noe2;
			zr1+=oe1;
			if(zr1<0) zr1=0;
		}
		
		else{
			num+=noe2;
			oe1-=noe2;
		} 
		//6
		if(nzr1>=zr2){
			num+=zr2;
			zr2=0;
		}
		else{
			num+=nzr1;
			zr2-=nzr1;
		} //8 
		if(nzr2>=zr1){
			num+=zr1;
			zr1=0;
			
		}
		else {
			num+=nzr2;
			zr1-=nzr2;
		}
		//cout<<oe1<<" "<<noe1<<" "<<oe2<<" "<<noe2<<" "<<zr1<<" "<<nzr1<<" "<<zr2<<" "<<nzr2<<endl;
		num+=min(oe1,oe2);
		num+=min(zr1,zr2);
		
		cout<<num<<endl;
	} 
	return 0;
} 
/*
//freopen Edit 
//freopen dino 
while(1); surf
孩子们 这里依然是Coverain（洛谷同名）
可能你们不熟悉我 但或许你们可能看过我发的一篇文章——《抽象代码落榜的看过来》
这一次的Noip就是我证明自己的研究的机会！如果你们能看到这段文字的话 那么应该是没落榜了罢 （大喜） 

t1就花了我2h 先不打注释了 我要干t2了孩子们 

haha man!what can i say ?Coverain out! t2看不懂一点孩子们！

t1! 你让我付出那么多的心血！你一定要AC啊！！！！
测评机！不要小瞧我与t1的羁绊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊！ 

（\  /)       ________
( 益   )     (edit.cpp) 
 |    | /AC @---------

abaaba话说第二题输出0能骗到分吗。。。。。。。。。。
要不我还是检验一下t1吧 

哇塞t1宝宝连1e3的数据都算对了 要不试试1e5的数据呢 

宝宝你卡住了。。。 让我给你写个.in文件润滑一下
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊宝宝做对了啊啊啊啊啊！！！！！ 

宝宝要不要挑战一下极限呢？我要把整个edit2.in狠♂狠♂的塞进你的输入里面了 
宝宝你怎么4,5,6，10的输出都错了？看来我得狠狠的调教你了！ 

赞美万机之神 赞美帝皇
话说机魂大悦的话 没有代码也能跑AC吗。。。 

我这种3k时代的古人类写出来的代码 在未来会不会当作是考古依据呢？ 

废了 改不动了 预计50pts  

不行 感觉万机之神和帝皇不管用啊
俺寻思这代码应该跑得动 Waaaaaaaaaaaaaaaaagh！

最后两分钟 AFO咯 
*/
