#include <bits/stdc++.h>
using namespace std;
int m[1001];
stack<int> mul;
stack<int> divi;
double com() {
  double res = 1;
  while (!mul.empty() || !divi.empty()) {
    if (!divi.empty()) {
      res /= (double)divi.top();
      divi.pop();
    }
    if (!mul.empty()) {
      res *= (double)mul.top();
      mul.pop();
    }
  }
  return res;
}
int main() {
  int n, dep, star;
  scanf("%d%d%d", &n, &dep, &star);
  int dm, all = 0;
  for (int i = 1; i <= dep; i++) {
    int t;
    scanf("%d", &t);
    all += t;
    if (i == star) dm = t - 1;
  }
  if (all < n)
    puts("-1");
  else {
    all--;
    for (int i = 0; i < n - 1; i++) {
      mul.push(all - dm - i);
      divi.push(all - i);
    }
    printf("%.9f\n", 1.0 - com());
  }
  return 0;
}
