#include <bits/stdc++.h>
int a[1005];
int N, M, H;
int s;
int C(int m, int k) {
  if (k > m)
    return 0;
  else if (k == m)
    return 1;
  else if (k == m - 1 || k == 1)
    return m;
  int up, dn;
  int min = m - k + 1;
  int i;
  int sum;
  for (sum = m, i = m - 1; i >= min; i--) sum *= i;
  up = sum;
  for (sum = k, i = k - 1; i >= 2; i--) sum = sum * i;
  dn = sum;
  return up / dn;
}
int main() {
  int i;
  while (scanf("%d%d%d", &N, &M, &H) != EOF) {
    s = 0;
    for (i = 1; i <= M; i++) {
      scanf("%d", &a[i]);
      s += a[i];
    }
    if (s < N) {
      printf("-1.0\n");
      continue;
    }
    double p = 1.0;
    int max, min;
    max = s - 1;
    min = s - 1 - N + 2;
    for (i = max; i >= min; i--) p = p / i;
    max = s - a[H];
    min = s - a[H] - N + 2;
    for (i = max; i >= min; i--) p *= i;
    printf("%lf\n", 1 - p);
  }
  return 0;
}
