package main
import (
"fmt"
)
func main() {
var n, m, k int
if _, err := fmt.Scan(&n, &m, &k); err != nil {
return
}
P := make([]float64, n*n+1)
P[0] = 1.0
for c := 1; c <= n*n; c++ {
if c <= k {
P[c] = P[c-1] * float64(k-c+1) / float64(m-c+1)
} else {
P[c] = 0
}
}
C := make([]float64, n+1)
C[0] = 1.0
for i := 1; i <= n; i++ {
C[i] = C[i-1] * float64(n-i+1) / float64(i)
}
var sum, comp float64
for i := 0; i <= n; i++ {
for j := 0; j <= n; j++ {
c := n*i + n*j - i*j
y := C[i]*C[j]*P[c] - comp
t := sum + y
comp = (t - sum) - y
sum = t
}
}
if sum > 1e99 {
fmt.Println("1e99")
} else {
fmt.Printf("%.15g\n", sum)
}
}