#include <bits/stdc++.h>
using namespace std;
const int MAXN = int(1e6 + 5);
long double f[MAXN];
int n, m, k;
long double C(int n, int m) { return f[n] - f[m] - f[n - m]; }
int main() {
  f[0] = 0;
  for (int i = 1; i <= MAXN - 4; i++) f[i] = f[i - 1] + log(1.0 * i);
  scanf("%d%d%d", &n, &m, &k);
  long double ans = 0;
  for (int x = 0; x <= n; x++)
    for (int y = 0; y <= n; y++)
      if (n * (x + y) - x * y <= k) {
        int z = n * (x + y) - x * y;
        long double tmp = C(n, x) + C(n, y) + C(m - z, k - z) - C(m, k);
        ans = min((long double)1e99, ans + exp(tmp));
      }
  printf("%.10f\n", (double)ans);
  return 0;
}
