#include <bits/stdc++.h>
using namespace std;
const int maxn = 1100;
int n, m;
int C[maxn], R[maxn], que[maxn], lq, S, T[maxn];
int main() {
  scanf("%d%d\n", &n, &m);
  for (int i = 1; i <= n; i++) {
    for (int j = 1; j <= m; j++)
      if (getchar() == 'X')
        R[i] = j, C[j] = i;
      else
        S++;
    getchar();
  }
  long double ans = 0;
  for (int i = 1; i <= n; i++) {
    double sum = 0, T = 0, pre = 0;
    for (int j = 1; j <= m; j++) {
      int Nd = C[j];
      if (Nd != i) ans += T * (i + j) - sum;
      T += i;
      sum += (i + 1) * i / 2 + j * i;
      if (Nd <= i && Nd) {
        T--;
        sum -= Nd + j;
      }
    }
  }
  int st = 1;
  while (st <= m && C[st] == 0) st++;
  while (st <= m) {
    double sum = C[st] - 1;
    ans += sum * 2 * (n - C[st]);
    st++;
    while (st <= m && C[st] > C[st - 1]) {
      sum += C[st] - 1;
      ans += sum * 2 * (n - C[st]);
      st++;
    }
    while (st <= m && C[st] == 0) st++;
  }
  st = 1;
  while (st <= n && R[st] == 0) st++;
  while (st <= n) {
    double sum = R[st] - 1;
    ans += sum * 2 * (m - R[st]);
    st++;
    while (st <= n && R[st] > R[st - 1]) {
      sum += R[st] - 1;
      ans += sum * 2 * (m - R[st]);
      st++;
    }
    while (st <= n && R[st] == 0) st++;
  }
  for (int i = 1; i <= m / 2; i++) swap(C[i], C[m - i + 1]);
  for (int i = 1; i <= n; i++)
    if (R[i] != 0) R[i] = m - R[i] + 1;
  for (int i = 1; i <= n; i++) {
    double sum = 0, T = 0, pre = 0;
    for (int j = 1; j <= m; j++) {
      int Nd = C[j];
      T += i - 1;
      sum += (i + 1) * i / 2 + j * i - i - j;
      if (Nd < i && Nd) {
        T--;
        sum -= Nd + j;
      }
      if (Nd != i) ans += T * (i + j) - sum;
    }
  }
  st = 1;
  while (st <= m && C[st] == 0) st++;
  while (st <= m) {
    double sum = C[st] - 1;
    st++;
    while (st <= m && C[st] > C[st - 1]) {
      ans += sum * 2 * (n - C[st]);
      sum += C[st] - 1;
      st++;
    }
    while (st <= m && C[st] == 0) st++;
  }
  st = 1;
  while (st <= n && R[st] == 0) st++;
  while (st <= n) {
    double sum = R[st] - 1;
    st++;
    while (st <= n && R[st] > R[st - 1]) {
      ans += sum * 2 * (m - R[st]);
      sum += R[st] - 1;
      st++;
    }
    while (st <= n && R[st] == 0) st++;
  }
  ans *= 2;
  printf("%.9lf\n", double(ans / S / S));
  return 0;
}
