#include <bits/stdc++.h>
using namespace std;
const int MAXM = 100005;
int n, m, k;
long double lnFact[MAXM] = {0}, ans = 0;
int t;
inline double lnC(int x, int y) {
  return lnFact[x] - lnFact[y] - lnFact[x - y];
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  for (int i = 2; i < MAXM; ++i) lnFact[i] = lnFact[i - 1] + log(i);
  for (int i = 0; i <= n && ans < 1e99; ++i)
    for (int j = 0; j <= n && ans < 1e99; ++j) {
      t = k - n * (i + j) + i * j;
      if (t < 0) continue;
      ans += exp(lnC(n, i) + lnC(n, j) + lnC(m - n * (i + j) + i * j, t) -
                 lnC(m, k));
    }
end:
  cout << setprecision(15) << (ans < 1e99 ? ans : 1e99) << endl;
  return 0;
}
