#include<bits/stdc++.h>
#define fi first
#define se second
#define debug(...) fprintf(stderr, __VA_ARGS__)
#define DEBUG debug("Passing %d line in %s\n", __LINE__, __FUNCTION__)
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
int T;
int n, sum;
array<string, 2> s, t;
array<vector<int>, 2> vis;
struct Node
{
int l, r, type, o;
array<int, 2> num;
Node(int _l, int _r, int _num0, int _num1, int _type, int _o): l(_l), r(_r), type(_type), o(_o), num{{_num0, _num1}} {}
bool operator < (const Node &rhs) const { return r < rhs.r; }
};
vector<Node> a;
void clear()
{
sum = 0;
a.clear();
for(int i: {0, 1})
vis[i].clear();
}
void update(string &ss, string &tt, int o)
{
int lst = 1, num0 = (ss[1] == '0'), num1 = (ss[1] == '1');
ss[0] = (char)((ss[1] - '0') ^ 1);
for(int i = 2; i <= n + 1; i++)
{
if(i == n + 1 || (tt[i] != tt[i - 1]))
{
a.emplace_back(lst, i - 1, num0, num1, tt[i - 1] - '0', o);
lst = i, num0 = num1 = 0;
}
num0 += (ss[i] == '0');
num1 += (ss[i] == '1');
}
}
string get(string &str, int l, int r)
{
if(l > r)
return "";
return str.substr(l, r - l + 1);
}
void solve()
{
clear();
cin >> n;
cin >> s[0] >> s[1] >> t[0] >> t[1];
s[0] = ' ' + s[0], s[1] = ' ' + s[1];
t[0] = ' ' + t[0], t[1] = ' ' + t[1];
for(int i: {0, 1})
update(s[i], t[i], i);
sort(a.begin(), a.end());
array<string, 2> ans;
ans.fill(string(n + 1, ' '));
for(int i: {0, 1})
vis[i].resize(n + 1);
for(auto p: a)
{
if(p.type == 0)
{
for(int i = p.l; i <= p.r; i++)
ans[p.o][i] = s[p.o][i], vis[p.o][i] = 1;
}
}
array<int, 2> lst{{0, 0}};
for(auto p: a)
{
int l = p.l, r = p.r, type = p.type, o = p.o, e = o ^ 1;
auto num = p.num;
if(type == 0)
continue;
else
{
auto add = [&](int x, int i) { ans[o][i] = (char)('0' + x), num[x]--; };
for(int i = l; i <= r; i++)
{
if(!vis[e][i])
continue;
int x = ans[e][i] - '0';
if(num[x])
add(x, i);
else
add(x ^ 1, i);
vis[o][i] = 1;
}
for(int i = l; i <= r; i++)
{
if(vis[e][i])
continue;
add(num[0] ? 0 : 1, i);
vis[o][i] = 1;
}
}
lst[o] = r;
}
for(int i = 1; i <= n; i++)
if(ans[0][i] == ans[1][i])
sum++;
cout << sum << endl;
}
int main()
{
freopen("edit.in", "r", stdin);
freopen("edit.out", "w", stdout);
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
cin >> T;
while(T--)
solve();
return 0;
}