#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, h;
  cin >> n >> m >> h;
  --h;
  int sum = 0;
  vector<int> s(m);
  for (int i = 0; i < m; ++i) {
    cin >> s[i];
    sum += s[i];
  }
  if (sum - 1 < n - 1) {
    cout << "-1.0" << endl;
    return 0;
  }
  if (sum - s[h] < n - 1) {
    cout << "1.0" << endl;
    return 0;
  }
  int a = sum - s[h];
  int b = sum - 1;
  int c = n - 1;
  double p = 1.0;
  int border = max(max(a, b), max(a - c, b - c));
  for (int i = 1; i <= border; ++i) {
    int q = i <= b ? i : 1;
    int w = i <= b - c ? i : 1;
    int e = i <= a ? i : 1;
    int r = i <= a - c ? i : 1;
    if (e > w) swap(e, w);
    if (r > q) swap(r, q);
    p *= (e / (double)r) * (w / (double)q);
  }
  double res = 1.0 - p;
  printf("%.9f\n", res);
  return 0;
}
