import std.stdio, std.functional, std.algorithm;

real calcImpl(int n, int m, int target){
	if(n == 0) return target == 0? 1: 0;
	real result = 0;
	foreach(i; 1..m+1) result += calc(n-1, m, target-i);
	return result;
}
alias memoize!calcImpl calc;

void main(){
	while(true){
		int n, m, k;
		readf("%d %d %d", &n, &m, &k);readln();
		if(n == 0 || m == 0) break;
		real eval = 0;
		foreach(i; n..m*n+1){
			eval += max(1.0, i-k)*calc(n, m, i);
		}
		writefln("%.8f",eval/(m^^n));
	}
}