#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
const int mxn = 1000006;
int N, K;
int V[mxn];
int C[mxn];
multiset<int> SV, SC;
vector<int> s;
void EXEC() {
  cin >> N >> K;
  for (int i = 1; i <= N; ++i) {
    scanf("%d", &V[i]);
    V[i] *= 100;
  }
  for (int i = 1; i <= N; ++i) scanf("%d", &C[i]);
  int p = N;
  for (int i = N; i >= 1; --i) {
    SV.insert(V[i]);
    SC.insert(C[i]);
    while (p > i) {
      int last = min(*SV.rbegin(), *SC.begin());
      SV.erase(SV.find(V[p]));
      SC.erase(SC.find(C[p]));
      --p;
      int now = min(*SV.rbegin(), *SC.begin());
      if (now < last) {
        ++p;
        SV.insert(V[p]);
        SC.insert(C[p]);
        break;
      }
    }
    s.push_back(min(*SV.rbegin(), *SC.begin()));
  }
  cout.setf(ios::fixed);
  cout.precision(12);
  sort(s.begin(), s.end(), greater<int>());
  ld sum = 0;
  ld psum = 0;
  ld pro = 1.0L;
  for (int i = K - 1; i < N; ++i) {
    sum += s[i] * pro;
    psum += pro;
    pro = pro * (i + 1) / (i - K + 2);
    sum /= pro;
    psum /= pro;
    pro /= pro;
  }
  cout << sum / psum << endl;
}
int main() {
  EXEC();
  return 0;
}
