#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N = 1e5+5;

ll t,n,ans;
struct ed
{
    char a;
    ll c;
};
ed str1[N], str2[N];

void solve1 ()
{
    for (ll i = 1; i < n; i++) // edit 1-1
    {
        if (str1[i].a == str2[i].a)
        {
            continue ;
        }
        else
        {
            if (str1[i].c==1 && str1[i + 1].c==1)
            {
                swap (str1[i].a, str1[i + 1].a);
            }
        }
    }
}void solve1_1 ()
{
    for (ll i = n; i > 1; i--) // edit 1-2
    {
        if (str1[i].a == str2[i].a)
        {
            continue ;
        }
        else
        {
            if (str1[i].c==1 && str1[i - 1].c==1)
            {
                swap (str1[i].a, str1[i - 1].a);
            }
        }
    }
}


void solve2 ()
{
    for (ll i = 1; i < n; i++) // edit 2
    {
        if (str2[i].a == str1[i].a)
        {
            continue ;
        }
        else
        {
            if (str2[i].c==1 && str2[i + 1].c==1)
            {
                swap (str2[i].a, str2[i + 1].a);
                // else {str1[i].ok = 0; str2[i].ok = 0;}
            }
        }
    }
}void solve2_1 ()
{
    for (ll i = n; i > 1; i--) // edit 1-2
    {
        if (str1[i].a == str2[i].a)
        {
            continue ;
        }
        else
        {
            if (str2[i].c==1 && str2[i - 1].c==1)
            {
                swap (str2[i].a, str2[i - 1].a);
            }
        }
    }
}

void input ()
{
    string a,at,b,bt;
    cin >> a >> b >> at >> bt;
    for (ll i = 1; i <= n; i++) str1[i].a = a[i-1];
    for (ll i = 1; i <= n; i++) str2[i].a = b[i-1];
    for (ll i = 1; i <= n; i++) str1[i].c = at[i-1]-'0';
    for (ll i = 1; i <= n; i++) str2[i].c = bt[i-1]-'0';
}

ll cnt;
void count ()
{
    cnt = 0;
    for (ll i = 1; i <= n; i++)
    {
        if (str1[i].a == str2[i].a)
        cnt ++;
    }
}

void output ()
{
    // ans = 0;
    // for (ll i = 1; i <= n; i++)
    // {
    //     if (str1[i].a == str2[i].a)
    //     ans ++;
    // }
    cout << ans << endl;
}

void init ()
{
    ans = 0;
    for (ll i = 1; i <= N; i++)
    {
        str1[i].a = 0, str2[i].a = 0;
        str1[i].c = 0, str2[i].c = 0;
    }
}

int main()
{
    freopen ("edit.in", "r", stdin);
    freopen ("edit.out", "w", stdout);

    cin >> t;
    while (t--)
    {
        cin >> n;
        input ();
        solve1();
        count(), ans=max(cnt,ans);
        solve2();
        count(), ans=max(cnt,ans);
        solve1_1();
        count(), ans=max(cnt,ans);
        solve2_1();
        count(), ans=max(cnt,ans);
        output();

        init();
    }
    

    fclose (stdin);
    fclose (stdout);
    return 0;
}