#include <iostream>
#include <vector>
#include <string>
using namespace std;
long long dp[200][2 << 14];
class DominoTiling {
public:
long long count(vector<string>V) {
int H = V.size(), W = V[0].size();
dp[0][0] = 1;
for (int i = 0; i < H*W; i++) {
int cx = i / W, cy = i%W;
for (int j = 0; j < (1 << W); j++) {
if (V[cx][cy] == 'X' || (j&(1 << cy)) != 0) {
if ((j&(1 << cy)) == 0)dp[i + 1][j] += dp[i][j];
else dp[i + 1][j - (1 << cy)] += dp[i][j];
}
else {
if (cy < W - 1 && V[cx][cy + 1] != 'X' && (j&(1 << (cy + 1))) == 0)dp[i + 1][j + (1 << (cy + 1))] += dp[i][j];
if (cx < H - 1 && V[cx + 1][cy] != 'X' && (j&(1 << cy)) == 0)dp[i + 1][j + (1 << cy)] += dp[i][j];
}
}
}
return dp[H*W][0];
}
};
int main() {
DominoTiling eel;
cout << eel.count({ "....","....","....","...." }) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIGRwWzIwMF1bMiA8PCAxNF07CgpjbGFzcyBEb21pbm9UaWxpbmcgewpwdWJsaWM6Cglsb25nIGxvbmcgY291bnQodmVjdG9yPHN0cmluZz5WKSB7CgkJaW50IEggPSBWLnNpemUoKSwgVyA9IFZbMF0uc2l6ZSgpOwoJCWRwWzBdWzBdID0gMTsKCQlmb3IgKGludCBpID0gMDsgaSA8IEgqVzsgaSsrKSB7CgkJCWludCBjeCA9IGkgLyBXLCBjeSA9IGklVzsKCQkJZm9yIChpbnQgaiA9IDA7IGogPCAoMSA8PCBXKTsgaisrKSB7CgkJCQlpZiAoVltjeF1bY3ldID09ICdYJyB8fCAoaiYoMSA8PCBjeSkpICE9IDApIHsKCQkJCQlpZiAoKGomKDEgPDwgY3kpKSA9PSAwKWRwW2kgKyAxXVtqXSArPSBkcFtpXVtqXTsKCQkJCQllbHNlIGRwW2kgKyAxXVtqIC0gKDEgPDwgY3kpXSArPSBkcFtpXVtqXTsKCQkJCX0KCQkJCWVsc2UgewoJCQkJCWlmIChjeSA8IFcgLSAxICYmIFZbY3hdW2N5ICsgMV0gIT0gJ1gnICYmIChqJigxIDw8IChjeSArIDEpKSkgPT0gMClkcFtpICsgMV1baiArICgxIDw8IChjeSArIDEpKV0gKz0gZHBbaV1bal07CgkJCQkJaWYgKGN4IDwgSCAtIDEgJiYgVltjeCArIDFdW2N5XSAhPSAnWCcgJiYgKGomKDEgPDwgY3kpKSA9PSAwKWRwW2kgKyAxXVtqICsgKDEgPDwgY3kpXSArPSBkcFtpXVtqXTsKCQkJCX0KCQkJfQoJCX0KCQlyZXR1cm4gZHBbSCpXXVswXTsKCX0KfTsKaW50IG1haW4oKSB7CglEb21pbm9UaWxpbmcgZWVsOwoJY291dCA8PCBlZWwuY291bnQoeyAiLi4uLiIsIi4uLi4iLCIuLi4uIiwiLi4uLiIgfSkgPDwgZW5kbDsKCXJldHVybiAwOwp9