#include <bits/stdc++.h>
using namespace std;
int cal[120][120];
int init(int m, int n) {
  if (cal[m][n] > 0) return cal[m][n];
  if (m == n || n == 0)
    return cal[m][n] = 1;
  else
    return cal[m][n] = init(m - 1, n) + init(m - 1, n - 1);
}
int main() {
  int n, m, h;
  int sh = 0, so = 0;
  memset(cal, 0, sizeof(cal));
  scanf("%d%d%d", &n, &m, &h);
  for (int i = 1; i <= m; i++) {
    int tmp;
    scanf("%d", &tmp);
    if (i == h)
      sh += tmp;
    else
      so += tmp;
  }
  if (sh + so < n)
    printf("-1.0\n");
  else if (n - 1 > so)
    printf("1.0\n");
  else {
    double ans = 1;
    n--;
    sh--;
    for (int i = 1; i <= sh; i++)
      ans = ans * 1.0 * (so - n + i) / (double)(so + i);
    printf("%f\n", 1.0 - ans);
  }
}
