N, M = map(int, input().split()) S = [input() for i in range(N)] v = [sum(1 << j for j in range(M) if S[i][j] == 'o') for i in range(N)] pcnt = [0] * (1 << N); vand = [(1 << M) - 1] * (1 << N) for i in range(N): for bit in range(1 << i): pcnt[bit | (1 << i)] = pcnt[bit] + 1 vand[bit | (1 << i)] = vand[bit] & v[i] ans = 0 dp = [0] * (1 << N) dp[0] = 1 for bit in range(1 << N): if bin(vand[bit]).count('1') == 1: ans += pcnt[bit] * dp[bit] continue dp[bit] /= (N - pcnt[bit]) for i in range(N): if bit >> i & 1: continue dp[bit | (1 << i)] += dp[bit] print(f"{ans:.15f}")