#include <bits/stdc++.h>
using namespace std;
template <class T>
bool ckmin(T& a, const T& b) {
  return b < a ? a = b, 1 : 0;
}
template <class T>
bool ckmax(T& a, const T& b) {
  return a < b ? a = b, 1 : 0;
}
mt19937_64 rng(chrono::high_resolution_clock::now().time_since_epoch().count());
int dx[] = {1, 0, -1, 0};
int dy[] = {0, -1, 0, 1};
const int MXN = 2e5 + 134;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n, m, h;
  cin >> n >> m >> h;
  h--;
  vector<long long int> v(m);
  for (long long int i = 0; i < m; i++) cin >> v[i];
  long long int sum = 0;
  v[h]--;
  for (long long int i = 0; i < m; i++) sum += v[i];
  if (sum < n - 1) {
    cout << -1;
    return 0;
  }
  if (v[h] == 0) {
    cout << 0;
    return 0;
  }
  long double ans = 1;
  for (long long int i = 0; i < n - 1; i++) {
    ans *= (long double)(sum - v[h] - i) / (sum - i);
  }
  ans = 1 - ans;
  cout << std::fixed << std::setprecision(20) << ans;
  return 0;
}
