#include <bits/stdc++.h>
using namespace std;
#define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
typedef long long ll;
const int MAX = 8;
int solutions=0;
bool visitedCol[MAX], rightDia[2*MAX+1],leftDia[2*MAX+1],available[MAX][MAX];
void Queens(int w){
if (w == 8){
solutions++;
return;
}
for (int k = 0;k <8;k++){
if(!visitedCol[k]&&!rightDia[k+w]&&!leftDia[MAX+k-w]&&!available[w][k]){
visitedCol[k] = rightDia[k+w] = leftDia[MAX+k-w] = 1;
Queens(w+1);
visitedCol[k] = rightDia[k+w] = leftDia[MAX+k-w] = 0;
}
}
}
int main() {
FAST
char c;
for (int i = 0;i<8;i++){
for (int j = 0;j<8;j++){
cin >> c;
if (c == '*'){
available[i][j]=1;
}
}
}
Queens(0);
cout << solutions << "\n";
//system("pause");
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRkFTVCBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKdHlwZWRlZiBsb25nIGxvbmcgbGw7Cgpjb25zdCBpbnQgTUFYID0gODsKaW50IHNvbHV0aW9ucz0wOwpib29sIHZpc2l0ZWRDb2xbTUFYXSwgcmlnaHREaWFbMipNQVgrMV0sbGVmdERpYVsyKk1BWCsxXSxhdmFpbGFibGVbTUFYXVtNQVhdOwoKdm9pZCBRdWVlbnMoaW50IHcpewogICAgaWYgKHcgPT0gOCl7CiAgICAgICAgc29sdXRpb25zKys7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgZm9yIChpbnQgayA9IDA7ayA8ODtrKyspewogICAgICAgIGlmKCF2aXNpdGVkQ29sW2tdJiYhcmlnaHREaWFbayt3XSYmIWxlZnREaWFbTUFYK2std10mJiFhdmFpbGFibGVbd11ba10pewogICAgICAgICAgICB2aXNpdGVkQ29sW2tdID0gcmlnaHREaWFbayt3XSA9IGxlZnREaWFbTUFYK2std10gPSAxOwogICAgICAgICAgICBRdWVlbnModysxKTsKICAgICAgICAgICAgdmlzaXRlZENvbFtrXSA9IHJpZ2h0RGlhW2srd10gPSBsZWZ0RGlhW01BWCtrLXddID0gMDsKICAgICAgICB9CiAgICB9CgoKCn0KCmludCBtYWluKCkgewogICAgRkFTVAogICAgY2hhciBjOwogICAgZm9yIChpbnQgaSA9IDA7aTw4O2krKyl7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7ajw4O2orKyl7CiAgICAgICAgICAgIGNpbiA+PiBjOwogICAgICAgICAgICBpZiAoYyA9PSAnKicpewogICAgICAgICAgICAgICAgYXZhaWxhYmxlW2ldW2pdPTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBRdWVlbnMoMCk7CgogICAgY291dCA8PCBzb2x1dGlvbnMgPDwgIlxuIjsKICAgIC8vc3lzdGVtKCJwYXVzZSIpOwogICAgcmV0dXJuIDA7Cn0K