#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
template <class T>
int size(T &x) {
  return x.size();
}
int n;
int turn(int l, int r, int x) {
  if (x < l || x > r) return x;
  return r - (x - l);
}
double mem[31][31][210][2];
double prob(int a, int b, int k, bool swapped) {
  if (k == 0) {
    return swapped ? (a > b ? 1 : 0) : (a < b ? 1 : 0);
  }
  if (!std::isinf(mem[a][b][k][swapped])) return mem[a][b][k][swapped];
  double s = 0;
  long long cnt = 0;
  for (int i = 0; i < n; i++) {
    for (int j = i; j < n; j++) {
      s += prob(turn(i, j, a), turn(i, j, b), k - 1, swapped);
      cnt++;
    }
  }
  return mem[a][b][k][swapped] = s / cnt;
}
int main() {
  for (int i = 0; i < 31; i++)
    for (int j = 0; j < 31; j++)
      for (int k = 0; k < 210; k++)
        for (int l = 0; l < 2; l++) mem[i][j][k][l] = INFINITY;
  int k;
  scanf("%d%d", &n, &k);
  vector<int> arr(n);
  for (int i = 0; i < n; i++) scanf("%d", &arr[i]);
  double res = 0.0;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      res += prob(i, j, k, arr[i] < arr[j]);
    }
  }
  cout << setprecision(12) << fixed << res << endl;
  return 0;
}
