#include using namespace std; int t,n,sf[100100],ss[100100],tf[100100],ts[100100]; int recf[2][100100],recs[2][100100],lf[100100],ls[100100]; char op; int main(){ freopen("edit.in","r",stdin); freopen("edit.out","w",stdout); ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin>>t; for(int o=1;o<=t;o++){ int ans=0; cin>>n; for(int i=1;i<=n;i++){ cin>>op; sf[i]=op-'0'; } for(int i=1;i<=n;i++){ cin>>op; ss[i]=op-'0'; } tf[0]=ts[0]=0; for(int i=1;i<=n;i++){ cin>>op; tf[i]=op-'0'; if(tf[i]){ if(tf[i-1]) lf[i]=lf[i-1]; else lf[i]=i; } } for(int i=1;i<=n;i++){ cin>>op; ts[i]=op-'0'; if(ts[i]){ if(ts[i-1]) ls[i]=ls[i-1]; else ls[i]=i; } } for(int i=1;i<=n;i++){ if(tf[i]){ recf[sf[i]][lf[i]]++; } if(ts[i]){ recs[ss[i]][ls[i]]++; } } for(int i=1;i<=n;i++){ if(!tf[i]&&!ts[i]){ if(sf[i]==ss[i]) ans++; } else if(!tf[i]){ if(recs[sf[i]][ls[i]]){ recs[sf[i]][ls[i]]--; ans++; } else recs[sf[i]^1][ls[i]]--; } else if(!ts[i]){ if(recf[ss[i]][lf[i]]){ recf[ss[i]][lf[i]]--; ans++; } else recf[ss[i]^1][lf[i]]--; } } for(int i=1;i<=n;i++){ if(tf[i]&&ts[i]){ int mx=max(min(recf[0][lf[i]],recs[0][ls[i]]),min(recf[1][lf[i]],recs[1][ls[i]])); //cout<min(recf[1][lf[i]],recs[1][ls[i]])){ ans++; recf[0][lf[i]]--; recs[0][ls[i]]--; } else{ ans++; recf[1][lf[i]]--; recs[1][ls[i]]--; } } } cout<