#include <bits/stdc++.h>
using namespace std;
const double pi = 3.1415926535;
void FAST() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
}
long long power(long long x, long long y, long long p) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
long long modInverse(long long n, long long p) { return power(n, p - 2, p); }
long long nCrM(long long n, long long r, long long p) {
  if (r == 0) return 1;
  long long fac[n + 1];
  fac[0] = 1;
  for (int i = 1; i <= n; i++) fac[i] = (fac[i - 1] * i) % p;
  return (fac[n] * modInverse(fac[r], p) % p * modInverse(fac[n - r], p) % p) %
         p;
}
long double fact(long double n) {
  long double res = 1;
  for (long double i = 2; i <= n; i++) res = res * i;
  return res;
}
long double nCr(long double n, long double r) {
  return fact(n) / (fact(r) * fact(n - r));
}
int main() {
  FAST();
  long long n, m, h;
  cin >> n >> m >> h;
  long double a[1001], sum = 0;
  for (long long i = 0; i < m; i++) {
    cin >> a[i];
    if (i + 1 != h) sum += a[i];
  }
  if (sum + a[h - 1] < n) {
    cout << setprecision(6) << -1 << '\n';
    return 0;
  } else if (sum < n - 1) {
    cout << setprecision(6) << 1 << '\n';
    return 0;
  } else {
    long double ans = 1;
    for (long long i = 1; i <= a[h - 1] - 1; i++) {
      ans *= (((long double)(sum - n + 1 + i) / (long double)(sum + i)));
    }
    cout << setprecision(6) << 1 - ans << '\n';
    return 0;
  }
}
