#include <bits/stdc++.h>
using namespace std;
char IO;
int rd() {
  int s = 0, f = 0;
  while (!isdigit(IO = getchar()))
    if (IO == '-') f = 1;
  do s = (s << 1) + (s << 3) + (IO ^ '0');
  while (isdigit(IO = getchar()));
  return f ? -s : s;
}
const int N = 1e3 + 10, P = 1e9 + 7;
int n, m, p;
int a[N];
int s;
double dp[N][N], ans;
int main() {
  n = rd(), m = rd(), p = rd();
  for (int i = 1, iend = m; i <= iend; ++i) s += (a[i] = rd());
  if (s < n) return puts("-1"), 0;
  s--, a[p]--, n--;
  dp[0][0] = 1;
  for (int i = 0, iend = n; i <= iend; ++i) {
    for (int j = 0, jend = min(i, a[p]); j <= jend; ++j) {
      dp[i + 1][j + 1] += dp[i][j] * 1.0 * (a[p] - j) / (s - i);
      dp[i + 1][j] += dp[i][j] * 1.0 * (s - i - a[p] + j) / (s - i);
    }
  }
  for (int i = 1, iend = a[p]; i <= iend; ++i) ans += dp[n][i];
  printf("%.6lf\n", ans);
}
