#include<stdio.h>
#include<string.h>
#include<math.h>
int N,M,K,i,j,t,C[1000005],f[1000005]={0};
long long T;
double R,d;

long long fact(int n)
{
	long long r=1;
	for(;n;n--)r*=n;
	return r;
}

void dfs(int d,int p,int n)
{
	int i;
	long long t=T;
	if(d==0)
	{
		for(i=1;i<=N*M;i++)
			if(f[i])
				t/=fact(f[i]);
		if(n-K<=1)
			C[1]+=t;
		else
			C[n-K]+=t;
	}
	else
		for(i=p;i<=M;i++)
		{
			f[i]++;
			dfs(d-1,i,n+i);
			f[i]--;
		}
}

int main()
{
	for(;scanf("%d%d%d",&N,&M,&K),N;)
	{
		T=fact(N);
		memset(C,0,sizeof(C));
		memset(f,0,sizeof(f));
		d=pow((double)M,N);
		dfs(N,1,0);
		for(i=1,R=0;i<=N*M;i++)
			R+=(double)C[i]/d*i;
		printf("%.10f\n",R);
	}
	return 0;
}