#include <bits/stdc++.h>
using namespace std;
const int maxn = 101;
int A[maxn][maxn];
int tmp[maxn];
int ans, k, n, cnt;
void dfs(int i) {
  bool flag;
  if (i > n) {
    ans = cnt;
    return;
  }
  flag = true;
  for (int j = 1; j < i; j++)
    if (tmp[j] && !A[j][i]) {
      flag = false;
      break;
    }
  if (flag) {
    cnt++;
    tmp[i] = true;
    dfs(i + 1);
    cnt--;
  }
  if (cnt + n - i > ans) {
    tmp[i] = false;
    dfs(i + 1);
  }
}
void Work() {
  dfs(1);
  double Ans = (double)k * k / ans * (ans - 1) / 2;
  printf("%.12lf\n", Ans);
}
void Init() {
  scanf("%d%d", &n, &k);
  for (int i = 1; i <= n; i++)
    for (int j = 1; j <= n; j++) scanf("%d", &A[i][j]);
}
int main() {
  Init();
  Work();
  return 0;
}
