#include<stdio.h>
int map[2][50];
int go(int a, int b, int n){
static int x, y;
static int cnt = 0;
int flag = 0;
if(a==0 && b==0){
x = 0;
y = 0;
map[x][y] = '*';
}
// 前进和撤销
if(map[x][y+1]=='.' && (y+1)<n){
flag = 1;
y++;
map[x][y] = '*';
if(y==(n-1) && x==1){
cnt++;
}
else go(x, y, n);
map[x][y] = '.';
y--;
}
if(x==1 && map[x-1][y+1]=='.'){
flag = 2;
x--;
y++;
map[x][y] = '*';
go(x, y, n);
map[x][y] = '.';
y--;
x++;
}
if(x==0 && map[x+1][y+1]=='.'){
flag = 3;
x++;
y++;
map[x][y] = '*';
if(y==(n-1) && x==1){
cnt++;
}
else go(x, y, n);
map[x][y] = '.';
y--;
x--;
}
if(map[0][y+1]=='X' && map[1][y+1]=='X' && (y+1)<n){
return 0;
}
return cnt;
}
int main(){
int n;
scanf("%d", &n);
char t[n];
scanf("%s", &t);
for(int i=0; i<n; i++){
map[0][i] = t[i];
}
scanf("%s", &t);
for(int i=0; i<n; i++){
map[1][i] = t[i];
}
int kind = go(0, 0, n);
printf("%d\n", kind);
}