#include <bits/stdc++.h>
using namespace std;
template <class T1>
void deb(T1 e1) {
  cout << e1 << endl;
}
template <class T1, class T2>
void deb(T1 e1, T2 e2) {
  cout << e1 << " " << e2 << endl;
}
template <class T1, class T2, class T3>
void deb(T1 e1, T2 e2, T3 e3) {
  cout << e1 << " " << e2 << " " << e3 << endl;
}
template <class T1, class T2, class T3, class T4>
void deb(T1 e1, T2 e2, T3 e3, T4 e4) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << endl;
}
template <class T1, class T2, class T3, class T4, class T5>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << endl;
}
template <class T1, class T2, class T3, class T4, class T5, class T6>
void deb(T1 e1, T2 e2, T3 e3, T4 e4, T5 e5, T6 e6) {
  cout << e1 << " " << e2 << " " << e3 << " " << e4 << " " << e5 << " " << e6
       << endl;
}
int n, s;
int vis[1000000 + 7];
int rev[1000000 + 7];
pair<int, int> dp[1000000 + 7];
int pot[1000000 + 7];
int main() {
  int p, d, i, j, k;
  scanf("%d %d", &n, &s);
  for (i = 1; i <= n; i++) {
    scanf("%d", &vis[i]);
  }
  for (i = 1; i <= n; i++) {
    scanf("%d", &rev[i]);
  }
  dp[n] = make_pair(100 * vis[n], rev[n]);
  pot[n] = min(dp[n].first, dp[n].second);
  for (i = n - 1; i > 0; i--) {
    pot[i] = min(100 * vis[i], rev[i]);
    dp[i] = make_pair(100 * vis[i], rev[i]);
    p = min(max(100 * vis[i], dp[i + 1].first), min(rev[i], dp[i + 1].second));
    if (p > pot[i]) {
      pot[i] = p;
      dp[i] = make_pair(max(100 * vis[i], dp[i + 1].first),
                        min(rev[i], dp[i + 1].second));
    }
  }
  sort(pot + 1, pot + n + 1);
  double ans = 0;
  double pro = s;
  for (i = 1; n - i >= s - 1; i++) {
    d = n - s - i + 2;
    if (d <= (n - s)) {
      pro *= d;
    }
    pro /= (n - i + 1);
    ans += (pro * pot[i]);
  }
  printf("%.7f\n", ans);
  return 0;
}
