#include <bits/stdc++.h>
using namespace std;
int n, m, h, s;
int main() {
  int i, j, d, tot = 0, our = 0;
  scanf("%d %d %d", &n, &m, &h);
  --n;
  for (i = 1; i <= m; ++i) {
    scanf("%d", &s);
    if (i == h) {
      our = s - 1;
      tot += s - 1;
    } else
      tot += s;
  }
  if (n > tot) {
    printf("-1.0\n");
    return 0;
  }
  if (our == 0) {
    printf("0.0\n");
    return 0;
  }
  if (n == tot) {
    if (n > 0)
      printf("1.0\n");
    else
      printf("0.0\n");
    return 0;
  }
  long double ans = 0.0;
  for (int k = 1; k <= min(our, n); ++k) {
    vector<int> num, denom;
    for (i = our; i > our - k; --i) num.push_back(i);
    for (i = k; i >= 2; --i) denom.push_back(i);
    for (i = tot - our; i > (tot - our) - (n - k); --i) num.push_back(i);
    for (i = n - k; i >= 2; --i) denom.push_back(i);
    for (i = n; i >= 2; --i) num.push_back(i);
    for (i = tot; i > tot - n; --i) denom.push_back(i);
    long double cr = 1.0;
    sort(num.begin(), num.end());
    sort(denom.begin(), denom.end());
    int pt = (int)min(num.size(), denom.size());
    for (i = 0; i < pt; ++i) {
      cr *= (double)num[i];
      cr /= (double)denom[i];
    }
    for (i = pt; i < num.size(); ++i) cr *= (double)num[i];
    for (i = pt; i < denom.size(); ++i) cr /= (double)denom[i];
    ans += cr;
  }
  cout << ans << '\n';
  return 0;
}
