#include <bits/stdc++.h>
using namespace std;
int dirx[8] = {0, 0, 1, -1, 1, 1, -1, -1};
int diry[8] = {1, -1, 0, 0, 1, -1, 1, -1};
long long ar[1005];
double nCk(long long n, long long k) {
  double res = 1;
  if (k > n - k) k = n - k;
  for (int i = 0; i < k; i++) {
    res *= (n - i);
    res /= (i + 1);
  }
  return res;
}
double solve(int n, int h, int tot) {
  double ans1 = nCk(tot, n), ans2 = 0;
  long long pep = ar[h] - 1;
  long long t = tot - pep, st = 1;
  if (t < n) st = n - t;
  for (long long i = st; i <= pep && i <= n; i++) {
    ans2 += nCk(pep, i) * nCk(tot - pep, n - i);
  }
  return (ans2 * 1.0) / (ans1 * 1.0);
}
int main() {
  int n, m, h;
  long long tot = 0;
  scanf("%d %d %d", &n, &m, &h);
  for (int i = 1; i <= m; i++) scanf("%lld", &ar[i]), tot += ar[i];
  if (tot < n) {
    cout << -1 << endl;
    return 0;
  }
  printf("%.9f\n", solve(n - 1, h, tot - 1));
  return 0;
}
