#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1);
const double E = 2.718281828459;
const int INF = 1e9;
const long long MOD = 1e9 + 7;
const int MAXN = 1e5 + 3;
double dp[31][31][202];
int aa[31];
double dem;
int n;
inline void update(int l, int i, int j, int r, int &ni, int &nj) {
  if (r < i || l > j) {
    ni = i, nj = j;
    return;
  }
  if (l <= i && r >= j)
    ni = l + r - i, nj = l + r - j;
  else {
    if (l <= i)
      ni = l + r - i, nj = j;
    else {
      if (r >= j)
        ni = i, nj = l + r - j;
      else
        ni = i, nj = j;
    }
  }
}
double go(int i, int j, int k) {
  if (k == 0) {
    return aa[i] < aa[j] ? 1.0 : 0.0;
  }
  if (dp[i][j][k] > -1) return dp[i][j][k];
  double tmp = 0.0;
  for (int l = 0; l < n; ++l) {
    for (int r = l; r < n; ++r) {
      int ni, nj;
      update(l, i, j, r, ni, nj);
      if (ni > nj)
        tmp += 1.0 - go(nj, ni, k - 1);
      else
        tmp += go(ni, nj, k - 1);
    }
  }
  tmp /= dem;
  return dp[i][j][k] = tmp;
}
int main() {
  int k;
  scanf("%d %d", &n, &k);
  for (int i = 0; i < n; ++i) scanf("%d", &aa[i]);
  for (int i = 0; i < n; ++i)
    for (int j = 0; j < n; ++j)
      for (int r = 0; r <= k; ++r) dp[i][j][r] = -2.0;
  double ret = 0.0;
  dem = n * (n + 1.0) * 0.5;
  for (int i = 0; i < n; ++i)
    for (int j = i + 1; j < n; ++j) ret += 1.0 - go(i, j, k);
  printf("%.12lf\n", ret);
  return 0;
}
