#include <bits/stdc++.h>
using namespace std;
const int maxN = 104;
const int maxK = 900;
double ch(int n, int r) {
  double res = 1;
  for (int i = 0; i < r; i++) res *= n - i;
  for (int i = 0; i < r; i++) res /= (i + 1);
  return res;
}
double dp[maxN][maxN][maxK];
int a[maxN];
int n, t;
int main() {
  cin >> n >> t;
  t = min(t, 870);
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (i != j) dp[i][j][0] = i > j;
  double choose = ch(n + 1, 2);
  for (int k = 1; k < t + 1; k++)
    for (int i = 0; i < n; i++)
      for (int j = 0; j < n; j++)
        if (i != j) {
          for (int x = 0; x < n; x++)
            for (int y = x; y < n; y++) {
              int ii = i, jj = j;
              if (x <= i && i <= y) ii = y - (i - x);
              if (x <= j && j <= y) jj = y - (j - x);
              dp[i][j][k] += dp[ii][jj][k - 1] / choose;
            }
        }
  double res = 0;
  for (int i = 0; i < n; i++)
    for (int j = i + 1; j < n; j++)
      if (a[i] < a[j])
        res += dp[i][j][t];
      else
        res += dp[j][i][t];
  cout << fixed << setprecision(9) << res << endl;
}
