#include <bits/stdc++.h>
using namespace std;
int n, k, z;
long long adj[40];
void clique(long long x, int sz) {
  if (x == 0) {
    z = max(z, sz);
    return;
  }
  while (x) {
    if (__builtin_popcountll(x) + sz <= z) return;
    long long i = __builtin_ffsll(x) - 1;
    x ^= (1LL << i);
    clique(x & adj[i], sz + 1);
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++) {
      int z;
      cin >> z;
      if (z) adj[i] ^= (1LL << j);
    }
  clique((1LL << n) - 1, 0);
  cout << fixed << setprecision(9) << (double)k * k * (z - 1) / (2 * z);
}
