#include <bits/stdc++.h>
using namespace std;
template <class T>
int len(const T &c) {
  return (int)c.size();
}
template <class T>
void cmin(T &a, T b) {
  if (b < a) a = b;
}
template <class T>
void cmax(T &a, T b) {
  if (b > a) a = b;
}
int main() {
  int n, m, h;
  cin >> n >> m >> h;
  vector<int> v(m);
  for (int i(0), _n(m); i < _n; ++i) {
    cin >> v[i];
  }
  int t = accumulate(v.begin(), v.end(), 0);
  if (t < n) {
    cout << -1;
    return 0;
  }
  if (t - v[h - 1] < (n - 1)) {
    cout << 1.0;
    return 0;
  }
  cout.precision(10);
  cout.setf(ios::fixed);
  vector<int> v1(100005), v2(100005);
  for (int i = t - v[h - 1] + 1; i <= t - 1; i++) v1[i] = 1;
  for (int i = t - v[h - 1] - n + 2; i <= t - n; i++) v2[i] = 1;
  double p = 1.0;
  for (int i(1), _b(100002); i < _b; ++i) {
    if (v1[i]) p /= i;
    if (v2[i]) p *= i;
  }
  cout << 1 - p;
}
