program main
   implicit none
   integer n,m,k,i,j,ans
   integer,ALLOCATABLE :: dp(:,:)
   integer,PARAMETER :: p=998244353
   read(*,*)n,m,k
   allocate(dp(n+100,k+100))
   dp=0
   dp(1,1)=m
   do i=1,n
      do j=1,k+1
         dp(i+1,j+1)=mod(dp(i,j)+dp(i+1,j+1),p)
         dp(i+1,j)=mod(dp(i,j)*(m-1)+dp(i+1,j),p)
      enddo
   enddo
   ans=0
   do i=1,k+1
      ans=mod(ans+dp(n,i),p)
   enddo
   ans=mod(ans,p)
   write(*,*)ans

end program main