#include <bits/stdc++.h>
using namespace std;
inline void err(istringstream *iss) {}
template <typename T, typename... Args>
void err(istringstream *iss, const T &$val, const Args &...args) {
  string $name;
  *iss >> $name;
  if ($name.back() == ',') $name.pop_back();
  cout << $name << " = " << $val << "; ", err(iss, args...);
}
using ll = long long;
using ull = unsigned long long;
using ld = long double;
const ll llinf = (1ll << 61) - 1;
long n, m, K, T, Q, cn;
long s[1005], h, tot;
signed main() {
  cin.tie(NULL);
  cin >> n >> m >> h;
  for (long i = 1; i <= m; i++) {
    cin >> s[i];
    tot += s[i];
  }
  if (tot < n) return puts("-1"), 0;
  n--, s[h]--, tot--;
  double ans = 1;
  for (long num = tot - s[h] - n + 1, denom = tot - n + 1;
       num <= tot - s[h] or denom <= tot;) {
    if (ans < 1000000007 and num <= tot - s[h])
      ans *= num++;
    else
      ans /= 1.0 * denom++;
  }
  cout << 1 - ans << '\n';
  return 0;
}
