#include using namespace std; using ll = long long; using ld = long double; int main(){ int N, M; cin >> N >> M; vector> S(N); for (int i = 0; i < N; i++){ string s; cin >> s; for (int j = 0; j < M; j++){ if (s[j] == 'o') S[i][j] = 1; } } int L = 1<> C(L); C[0].set(); vector bad(N+1, 0); for (int bit = 0; bit < L; bit++){ if (bit){ int b = __builtin_ctz(bit); int pre = bit^(1<= 2) bad[k]++; } vector CC(N+1); for (int k = 0; k <= N; k++){ if (k == 0) CC[0] = 1; else CC[k] = CC[k-1]*(N-k+1)/k; } ld ans = 0; for (int k = 0; k < N; k++) ans += (ld)bad[k]/CC[k]; cout << fixed << setprecision(20) << ans << endl; }