N,K,M = map(int, input().split()) mod = 10**9+7 fac = [1]*(N+1) inv = [1]*(N+1) for i in range(1,N+1): fac[i] = (fac[i-1]*i)%mod inv[i] = (inv[i-1]*pow(i,mod-2,mod))%mod def npr(n,r): return fac[n]*inv[n-r]%mod res = 0 for d in range(1,N+1): if K%d==0: res += (npr(N-1,d-1)*pow(N,N-d,mod))%mod res %= mod if M==1: print(res) else: inv = pow(N-1,mod-2,mod) res2 = (pow(N,N,mod)-res)*inv%mod print(res2)