#include <bits/stdc++.h>
using namespace std;
inline long long add(long long a, long long b) {
  return (a % 1000000007 + b % 1000000007) % 1000000007;
}
inline long long mul(long long a, long long b) {
  return (a % 1000000007 * b % 1000000007) % 1000000007;
}
long long pwr(long long a, long long b) {
  if (!b) return 1ll;
  long long t = pwr(a, b / 2);
  t = mul(t, t);
  if (b & 1) t = mul(t, a);
  return t;
}
long long modinv(long long a, long long b = 1000000007) {
  return pwr(a, b - 2);
}
long long gcd(long long a, long long b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int n, m, s = 0, h;
  cin >> n >> m >> h;
  int a[m + 2];
  for (int i = 1; i <= m; i++) cin >> a[i], s += a[i];
  if (s < n) {
    cout << -1;
    return 0;
  }
  s--;
  a[h]--;
  n--;
  if (!a[h]) {
    cout << 0;
    return 0;
  }
  double ans = 1.0000;
  for (int i = 1; i <= a[h]; i++) {
    ans *= (double)(s - a[h] - n + i) / (s - a[h] + i);
  }
  ans = 1 - ans;
  cout << fixed << setprecision(12) << ans;
}
