#include <bits/stdc++.h>
using namespace std;
int tr=0;
vector<int> v;
int main() {
// your code goes here
int t;
cin >> t;
while(t--){
v.clear();
int n;
cin >> n;
char a[2][n];
for(int i=0; i<2; i++){
for(int j=0; j<n; j++){
cin >> a[i][j];
}
}
int c1=0, c2=0, n1=0, n2=0;
for(int i=0; i<n; i++){
if(a[0][i]=='*')n1++;
if(a[1][i]=='*')n2++;
}
if(n1!=0 or n2!=0){
for(int i=0; i<n; i++){
if(a[0][i]=='*' or a[1][i]=='*'){
if(a[0][i]=='*' and a[1][i]=='.')v.push_back(0);
else if(a[0][i]=='.' and a[1][i]=='*')v.push_back(1);
else v.push_back(2);
}
}
for(int i=1; i<(v.size()-1); ){
if(v[i-1]==0 and v[i]==1 and v[i+1]==0){
tr++; i+=2;
}
else if(v[i-1]==1 and v[i]==0 and v[i+1]==1){
tr++; i+=2;
}
else i++;
}
for(int i=0; i<(v.size()-1); i++){
if((v[i]==0 and v[i+1]==0) || (v[i]==0 and v[i+1]==2) || (v[i]==2 and v[i+1]==0) || (v[i]==2 and v[i+1]==2)) c1++;
if((v[i]==1 and v[i+1]==2) || (v[i]==1 and v[i+1]==1) || (v[i]==2 and v[i+1]==1)) c2++;
}
}
// cout << n1<<" "<<n2<<" "<<c1<<" "<<c2 <<" "<<tr <<endl;
if(n1!=0 and n2!=0){
int res = c1+c2+tr+1;
cout<<res<<endl;
}
else {
if(n1==0 and n2!=0){
cout<<n2-1<<endl;
}
else if(n2==0 and n1!=0){
cout<<n1-1<<endl;
}
else cout << 0 <<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCB0cj0wOwp2ZWN0b3I8aW50PiB2OwogCmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJaW50IHQ7CgljaW4gPj4gdDsKCXdoaWxlKHQtLSl7CgkJdi5jbGVhcigpOwoJCWludCBuOwoJCWNpbiA+PiBuOwoJCWNoYXIgYVsyXVtuXTsKCQkKCQlmb3IoaW50IGk9MDsgaTwyOyBpKyspewoJCQlmb3IoaW50IGo9MDsgajxuOyBqKyspewoJCQkJY2luID4+IGFbaV1bal07CgkJCX0KCQl9CgkJaW50IGMxPTAsIGMyPTAsIG4xPTAsIG4yPTA7CgkJCgkJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQkJaWYoYVswXVtpXT09JyonKW4xKys7CgkJCWlmKGFbMV1baV09PScqJyluMisrOwoJCX0KCQkKCQkKCQkKCQlpZihuMSE9MCBvciBuMiE9MCl7CgkJCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJCQlpZihhWzBdW2ldPT0nKicgb3IgYVsxXVtpXT09JyonKXsKCQkJCQlpZihhWzBdW2ldPT0nKicgYW5kIGFbMV1baV09PScuJyl2LnB1c2hfYmFjaygwKTsKCQkJCQllbHNlIGlmKGFbMF1baV09PScuJyBhbmQgYVsxXVtpXT09JyonKXYucHVzaF9iYWNrKDEpOwoJCQkJCWVsc2Ugdi5wdXNoX2JhY2soMik7CgkJCQl9IAoJCQl9CQoJCQkKCQkJCgkJCWZvcihpbnQgaT0xOyBpPCh2LnNpemUoKS0xKTsgKXsKCQkJCWlmKHZbaS0xXT09MCBhbmQgdltpXT09MSBhbmQgdltpKzFdPT0wKXsKCQkJCQl0cisrOyBpKz0yOwoJCQkJfQoJCQkJZWxzZSBpZih2W2ktMV09PTEgYW5kIHZbaV09PTAgYW5kIHZbaSsxXT09MSl7CgkJCQkJdHIrKzsgaSs9MjsKCQkJCX0KCQkJCWVsc2UgaSsrOwoJCQl9CgkJCQoJCQkJZm9yKGludCBpPTA7IGk8KHYuc2l6ZSgpLTEpOyBpKyspewoJCQkJCWlmKCh2W2ldPT0wIGFuZCB2W2krMV09PTApIHx8ICh2W2ldPT0wIGFuZCB2W2krMV09PTIpIHx8ICh2W2ldPT0yIGFuZCB2W2krMV09PTApIHx8ICh2W2ldPT0yIGFuZCB2W2krMV09PTIpKSBjMSsrOwoJCQkJCWlmKCh2W2ldPT0xIGFuZCB2W2krMV09PTIpIHx8ICh2W2ldPT0xIGFuZCB2W2krMV09PTEpIHx8ICh2W2ldPT0yIGFuZCB2W2krMV09PTEpKSBjMisrOwoJCQkJfQoJCQkKCQl9CgkvLwljb3V0IDw8IG4xPDwiICI8PG4yPDwiICI8PGMxPDwiICI8PGMyIDw8IiAiPDx0ciA8PGVuZGw7CgkJaWYobjEhPTAgYW5kIG4yIT0wKXsKCQkJaW50IHJlcyA9IGMxK2MyK3RyKzE7CgkJCWNvdXQ8PHJlczw8ZW5kbDsKCQl9CgkJCgkJZWxzZSB7CgkJCWlmKG4xPT0wIGFuZCBuMiE9MCl7CgkJCQljb3V0PDxuMi0xPDxlbmRsOwoJCQl9CgkJCWVsc2UgaWYobjI9PTAgYW5kIG4xIT0wKXsKCQkJCWNvdXQ8PG4xLTE8PGVuZGw7CgkJCX0KCQkJZWxzZSBjb3V0IDw8IDAgPDxlbmRsOwoJCX0KCQkKCX0KCXJldHVybiAwOwp9IA==