#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

const int N=100010;
int n;
string s;
string op1;
string t;
string op2;
int a[N],b[N];
bool sta[N],stb[N];

void solve1()
{
	int cnt=0;
	for (int i=1;i<=n;i++)
	{
		if (b[i]==a[1])
		{
			cnt++;
		}
	}
	cout << cnt << "\n";
}

void solve2()
{
	int cnt=0;
	for (int i=1;i<=n;i++)
	{
		if (op1[i]=='0') 
		{
			if (a[i]==b[i]) 
			{
				cnt++;
			}
		}
		else
		{
			int j=i;
			while (j<=n && op1[j]!='0') j++;
			j--;
			int acnt0=0,acnt1=0;
			int bcnt0=0,bcnt1=0;
			for (int k=i;k<=j;k++)
			{
				if (a[k]) acnt1++;
				else acnt0++;
				
				if (b[k]) bcnt1++;
				else bcnt0++;
			}
			cnt+=min(acnt0,bcnt0)+min(acnt1,bcnt1);
			i=j;
		}
	}
	cout << cnt << "\n";
}

int calc1()
{
	for (int i=1;i<=n;i++)
	{
		a[i]=s[i]-'0';
		b[i]=t[i]-'0';
	}
	for (int i=1;i<=n;i++)
	{
		if (op1[i]=='0') continue;
		int j=i;
		while (j<=n && op1[j]!='0') j++;
		j--;
		int cnt1=0,cnt0=0;
		for (int k=i;k<=j;k++) 
		{
			if (a[k]) cnt1++;
			else cnt0++;
		}
		for (int k=i;k<=j;k++)
		{
			if (b[k] && cnt1)
			{
				a[k]=1;
				cnt1--;
			}
			else if (!b[k] && cnt0)
			{
				a[k]=0;
				cnt0--;
			}
			else
			{
				if (a[k] && !cnt1) 
				{
					a[k]=0;
					cnt0--;
				}
				else if (!a[k] && !cnt0) 
				{
					a[k]=1;
					cnt1--;
				}
				else
				{
					if (!a[k]) cnt0--;
					else cnt1--;
				}
			}
		}
		i=j;
	}
	for (int i=1;i<=n;i++)
	{
		if (op2[i]=='0') continue;
		int j=i;
		while (j<=n && op2[j]!='0') j++;
		j--;
		int cnt1=0,cnt0=0;
		for (int k=i;k<=j;k++) 
		{
			if (b[k]) cnt1++;
			else cnt0++;	
		}	
		for (int k=i;k<=j;k++)
		{
			if (a[k] && cnt1)
			{
				b[k]=1;
				cnt1--;
			}
			else if (!a[k] && cnt0)
			{
				b[k]=0;
				cnt0--;
			}
			else
			{
				if (b[k] && !cnt1) 
				{
					b[k]=0;
					cnt0--;
				}
				else if (!b[k] && !cnt0) 
				{
					b[k]=1;
					cnt1--;
				}
				else
				{
					if (!b[k]) cnt0--;
					else cnt1--;
				}
			}
		}
		i=j;
	}
	int cnt=0;
	for (int i=1;i<=n;i++)
	{
		//cout << a[i] << " " << b[i] << "\n";
		if (a[i]==b[i])
		{
			cnt++;
		}
	}
	return cnt;
}

int calc2()
{
	for (int i=1;i<=n;i++)
	{
		a[i]=s[i]-'0';
		b[i]=t[i]-'0';
	}
	for (int i=1;i<=n;i++)
	{
		if (op2[i]=='0') continue;
		int j=i;
		while (j<=n && op2[j]!='0') j++;
		j--;
		int cnt1=0,cnt0=0;
		for (int k=i;k<=j;k++) 
		{
			if (b[k]) cnt1++;
			else cnt0++;	
		}	
		for (int k=i;k<=j;k++)
		{
			if (a[k] && cnt1)
			{
				b[k]=1;
				cnt1--;
			}
			else if (!a[k] && cnt0)
			{
				b[k]=0;
				cnt0--;
			}
			else
			{
				if (b[k] && !cnt1) 
				{
					b[k]=0;
					cnt0--;
				}
				else if (!b[k] && !cnt0) 
				{
					b[k]=1;
					cnt1--;
				}
				else
				{
					if (!b[k]) cnt0--;
					else cnt1--;
				}
			}
		}
		i=j;
	}
	for (int i=1;i<=n;i++)
	{
		if (op1[i]=='0') continue;
		int j=i;
		while (j<=n && op1[j]!='0') j++;
		j--;
		int cnt1=0,cnt0=0;
		for (int k=i;k<=j;k++) 
		{
			if (a[k]) cnt1++;
			else cnt0++;
		}
		for (int k=i;k<=j;k++)
		{
			if (b[k] && cnt1)
			{
				a[k]=1;
				cnt1--;
			}
			else if (!b[k] && cnt0)
			{
				a[k]=0;
				cnt0--;
			}
			else
			{
				if (a[k] && !cnt1) 
				{
					a[k]=0;
					cnt0--;
				}
				else if (!a[k] && !cnt0) 
				{
					a[k]=1;
					cnt1--;
				}
				else
				{
					if (!a[k]) cnt0--;
					else cnt1--;
				}
			}
		}
		i=j;
	}
	int cnt=0;
	for (int i=1;i<=n;i++)
	{
		//cout << a[i] << " " << b[i] << "\n";
		if (a[i]==b[i])
		{
			cnt++;
		}
	}
	return cnt;
}

void solve3()
{
	int cnt=max(calc1(),calc2());
	cout << cnt << "\n";
}

int main()
{
	freopen("edit.in","r",stdin);
	freopen("edit.out","w",stdout);
	
	int T;
	cin >> T;
	while (T--)
	{
		cin >> n;
		cin >> s;
		cin >> t;
		cin >> op1;
		cin >> op2;
		
		s=" "+s,op1=" "+op1;
		t=" "+t,op2=" "+op2;
		
		for (int i=1;i<=n;i++)
		{
			a[i]=s[i]-'0';
			b[i]=t[i]-'0';
		}
		
		bool fla1=true;
		for (int i=2;i<=n;i++)
		{
			if (a[i]!=a[1])
			{
				fla1=false;
			}
		}
		if (fla1)
		{
			solve1();
			continue;
		}
		
		bool fla2=true;
		for (int i=1;i<=n;i++)
		{
			if (op1[i]!=op2[i])
			{
				fla2=false;
			}
		}
		if (fla2)
		{
			solve2();
			continue;
		}
		
		solve3();
	}
	return 0;
}
