#include <bits/stdc++.h>
using namespace std;
int n;
int k;
double dp[105][105];
double ans;
double p;
double tmp[105][105];
int v[105];
void ini() {
  ans = 0;
  int i, j;
  for (i = 1; i <= n; i++) {
    scanf("%d", &v[i]);
  }
  p = 1.0 * n * (n + 1) / 2.0;
  memset(dp, 0, sizeof(dp));
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      dp[i][j] = 1.0;
    }
  }
}
void solve() {
  int i, j, x, y, a, b;
  while (k--) {
    memcpy(tmp, dp, sizeof(dp));
    memset(dp, 0, sizeof(dp));
    for (i = 1; i <= n; i++) {
      for (j = i + 1; j <= n; j++) {
        for (x = 1; x <= n; x++) {
          for (y = x; y <= n; y++) {
            a = i;
            b = j;
            if (x <= i && i <= y) a = x + y - a;
            if (x <= j && j <= y) b = x + y - b;
            if (a > b) swap(a, b);
            if (x <= i && j <= y) {
              dp[a][b] += (1.0 - tmp[i][j]) / p;
            } else {
              dp[a][b] += 1.0 * tmp[i][j] / p;
            }
          }
        }
      }
    }
  }
}
void out() {
  int i, j;
  for (i = 1; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      if (v[i] > v[j]) {
        ans += dp[i][j];
      } else {
        ans += 1.0 - dp[i][j];
      }
    }
  }
  printf("%.10f\n", ans);
}
int main() {
  while (scanf("%d%d", &n, &k) != EOF) {
    ini();
    solve();
    out();
  }
  return 0;
}
