#include <bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for (int i = a; i <= b; ++i)
#define long long long
const int N = 1e6+10;
class FenwickTree {
private:
long t[N][2];
public:
void update(int x, int type) {
for (; x <= N; x += x & -x)
t[x][type]++;
}
long get(int x, int type) {
long res = 0;
for (; x > 0; x -= x & -x)
res += t[x][type];
return res;
}
} BIT;
int n, m, k;
int a[N], f[N], b[N];
void Enter() {
scanf("%d%d", &n, &k);
FOR(i, 1, n) scanf("%d", &a[i]);
}
long calc(int x, int type) {
m = 0;
for (int i = 1; i <= n; ++i) {
f[i] = f[i-1] + (a[i] >= x);
b[++m] = 2 * f[i] - i - 1;
b[++m] = 2 * f[i-1] - i;
}
sort(b + 1, b + m + 1);
long res = 0;
FOR(i, 1, n) {
int cur = lower_bound(b + 1, b + m + 1, 2 * f[i - 1] - i) - b;
BIT.update(cur, type);
cur = lower_bound(b + 1, b + m + 1, 2 * f[i] - i - 1) - b;
res += BIT.get(cur, type);
}
return res;
}
void Process() {
long res = calc(k, 0) - calc(k + 1, 1);
double ans = 1ll * n * (n + 1) / 2;
ans = res / ans;
printf("%.6lf", ans);
}
int main() {
// freopen("input.in", "r", stdin);
Enter();
Process();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKI2RlZmluZSBGT1IoaSwgYSwgYikgZm9yIChpbnQgaSA9IGE7IGkgPD0gYjsgKytpKQojZGVmaW5lIGxvbmcgbG9uZyBsb25nCiAKY29uc3QgaW50IE4gPSAxZTYrMTA7CiAKY2xhc3MgRmVud2lja1RyZWUgewpwcml2YXRlOgogICAgbG9uZyB0W05dWzJdOwpwdWJsaWM6CiAgICB2b2lkIHVwZGF0ZShpbnQgeCwgaW50IHR5cGUpIHsKICAgICAgICBmb3IgKDsgeCA8PSBOOyB4ICs9IHggJiAteCkKICAgICAgICAgICAgdFt4XVt0eXBlXSsrOwogICAgfQogICAgbG9uZyBnZXQoaW50IHgsIGludCB0eXBlKSB7CiAgICAgICAgbG9uZyByZXMgPSAwOwogICAgICAgIGZvciAoOyB4ID4gMDsgeCAtPSB4ICYgLXgpCiAgICAgICAgICAgIHJlcyArPSB0W3hdW3R5cGVdOwogICAgICAgIHJldHVybiByZXM7CiAgICB9Cn0gQklUOwogCmludCBuLCBtLCBrOwppbnQgYVtOXSwgZltOXSwgYltOXTsKIAp2b2lkIEVudGVyKCkgewogICAgc2NhbmYoIiVkJWQiLCAmbiwgJmspOwogICAgRk9SKGksIDEsIG4pIHNjYW5mKCIlZCIsICZhW2ldKTsKfQogCmxvbmcgY2FsYyhpbnQgeCwgaW50IHR5cGUpIHsKICAgIG0gPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgZltpXSA9IGZbaS0xXSArIChhW2ldID49IHgpOwogICAgICAgIGJbKyttXSA9IDIgKiBmW2ldIC0gaSAtIDE7CiAgICAgICAgYlsrK21dID0gMiAqIGZbaS0xXSAtIGk7CiAgICB9CiAKICAgIHNvcnQoYiArIDEsIGIgKyBtICsgMSk7CiAKICAgIGxvbmcgcmVzID0gMDsKICAgIEZPUihpLCAxLCBuKSB7CiAgICAgICAgaW50IGN1ciA9IGxvd2VyX2JvdW5kKGIgKyAxLCBiICsgbSArIDEsIDIgKiBmW2kgLSAxXSAtIGkpIC0gYjsKICAgICAgICBCSVQudXBkYXRlKGN1ciwgdHlwZSk7CiAgICAgICAgY3VyID0gbG93ZXJfYm91bmQoYiArIDEsIGIgKyBtICsgMSwgMiAqIGZbaV0gLSBpIC0gMSkgLSBiOwogICAgICAgIHJlcyArPSBCSVQuZ2V0KGN1ciwgdHlwZSk7CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CiAKdm9pZCBQcm9jZXNzKCkgewogICAgbG9uZyByZXMgPSBjYWxjKGssIDApIC0gY2FsYyhrICsgMSwgMSk7CiAgICBkb3VibGUgYW5zID0gMWxsICogbiAqIChuICsgMSkgLyAyOwogICAgYW5zID0gcmVzIC8gYW5zOwogICAgcHJpbnRmKCIlLjZsZiIsIGFucyk7Cn0KIAppbnQgbWFpbigpIHsKIC8vICAgZnJlb3BlbigiaW5wdXQuaW4iLCAiciIsIHN0ZGluKTsKIAogICAgRW50ZXIoKTsKICAgIFByb2Nlc3MoKTsKIAogICAgcmV0dXJuIDA7Cn0K