#include <bits/stdc++.h>
using namespace std;
const int N = 202, K = 864;
int cnt[4][N][N][N], a[N], n, k;
double dp[N][N], pd[N][N], ans;
int S(int x) { return x * (x + 1) / 2; }
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", &a[i]);
  for (int i = 0; i < n; i++)
    for (int j = 0; j < i; j++) dp[i][j] = double(1);
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      for (int l = 0; l < n; l++) {
        for (int r = l; r < n; r++) {
          int I = (l <= i && i <= r);
          int J = (l <= j && j <= r);
          cnt[3][i][j][l + r] += (I && J);
          cnt[1][i][j][l + r] += (I && !J);
          cnt[2][i][j][l + r] += (!I && J);
        }
      }
    }
  }
  k = min(k, K);
  for (int t = 1; t <= k; t++) {
    memset(pd, 0, sizeof pd);
    for (int i = 0; i < n; i++) {
      for (int j = i + 1; j < n; j++) {
        pd[i][j] = S(i) + S(n - j - 1) + S(j - i - 1);
        pd[i][j] *= dp[i][j];
        for (int x = i; x < n + j; x++) {
          if (x >= j) pd[i][j] += (cnt[3][i][j][x]) * dp[x - i][x - j];
          if (x >= i) pd[i][j] += (cnt[1][i][j][x]) * dp[x - i][j];
          if (x >= j) pd[i][j] += (cnt[2][i][j][x]) * dp[i][x - j];
        }
        pd[i][j] /= S(n);
        pd[j][i] = double(1.0) - pd[i][j];
      }
    }
    swap(pd, dp);
  }
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (a[i] > a[j]) ans += double(dp[i][j]);
  ans = double(S(n - 1)) - ans;
  printf("%.10f\n", ans);
}
