#include using namespace std; using ll = long long; #define rep(i, n) for(int i = 0; i < (int)(n); ++i) int main() { int N, M; cin >> N >> M; vector S(N); rep(i, N) cin >> S[i]; vector v(N, 0); rep(i, N) rep(j, M) if(S[i][j] == 'o') v[i] |= (1LL << j); double ans = 0; vector dp(1 << N, 0); dp[0] = 1; rep(bit, 1 << N) { int pcnt = __builtin_popcount(bit); ll vand = (1LL << M) - 1; rep(i, N) if(bit >> i & 1) vand &= v[i]; if(__builtin_popcountll(vand) == 1) { ans += dp[bit] * pcnt; continue; } rep(i, N) { if(bit >> i & 1) continue; int nbit = bit | (1 << i); dp[nbit] += dp[bit] / (N - pcnt); } } cout << fixed << setprecision(15) << ans << "\n"; }