#include <bits/stdc++.h>
using namespace std;
int i, j, k, n, m;
int a[110], ff[110][110], f1[110][110][110], f2[110][110][110],
    f3[110][110][110], bu[110][110];
double f[110][110][1010], an, s;
inline int H(int x) { return x * (x + 1) / 2; }
inline double cal(int x, int y) {
  if (ff[x][y]) x = n - x + 1, y = n - y + 1, swap(x, y);
  return f[x][y][k - 1];
}
int main() {
  scanf("%d%d", &n, &m);
  m = min(m, 1000);
  s = H(n);
  for (i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (i = 1; i <= n; i++)
    for (j = i + 1; j <= n; j++) {
      int A = i - 1, B = n - j;
      if (A > B) ff[i][j] = 1;
    }
  s = n * (n + 1) / 2;
  for (i = 1; i <= n; i++)
    for (j = i + 1; j <= n; j++)
      if (!ff[i][j]) {
        for (k = 1; k <= j - 1; k++) {
          int A = abs(i - k), mid = (i + k) / 2;
          if (A % 2 == 0) {
            int l = abs(mid - i), r = min(mid - 1, j - 1 - mid);
            f1[i][j][k] = r - l + 1;
          } else {
            int l = mid - min(i, k), r = min(mid - 1, j - 1 - (mid + 1));
            f1[i][j][k] = r - l + 1;
          }
        }
        for (k = i + 1; k <= n; k++) {
          int A = abs(j - k), mid = (j + k) / 2;
          if (A % 2 == 0) {
            int l = abs(mid - j), r = min(mid - (i + 1), n - mid);
            f2[i][j][k] = r - l + 1;
          } else {
            int l = mid - min(j, k), r = min(mid - (i + 1), n - (mid + 1));
            f2[i][j][k] = r - l + 1;
          }
        }
        int len = j - i;
        for (k = 1; k <= n - len; k++) {
          int l = min(k, i), r = max(j, k + len);
          f3[i][j][k] = min(l, n - r + 1);
        }
        bu[i][j] = H(i - 1) + H(j - i - 1) + H(n - j);
      }
  int x, y;
  for (k = 1; k <= m; k++)
    for (x = 1; x <= n; x++)
      for (y = x + 1; y <= n; y++)
        if (!ff[x][y]) {
          if (abs(f[x][y][k - 1] - 0.5) < (1e-10)) {
            f[x][y][k] = 0.5;
            continue;
          }
          double sum = 0;
          for (i = 1; i <= y - 1; i++) sum += cal(i, y) * f1[x][y][i];
          for (i = x + 1; i <= n; i++) sum += cal(x, i) * f2[x][y][i];
          int len = y - x;
          for (i = 1; i <= n - len; i++)
            sum += (1 - cal(i, i + len)) * f3[x][y][i];
          sum += cal(x, y) * bu[x][y];
          f[x][y][k] = sum / s;
        }
  for (i = 1; i <= n; i++)
    for (j = i + 1; j <= n; j++) {
      double A = cal(i, j);
      if (a[i] < a[j])
        an += A;
      else
        an += 1 - A;
    }
  printf("%.12lf\n", an);
  return 0;
}
