local MOD=998244353
local function add(a,b)return (a+b)%MOD end
local function sub(a,b)return a>b and a-b or a-b+MOD end
local function mul(a,b)local a1,b1=a%31596,b%31596 local a2,b2=(a-a1)/31596,(b-b1)/31596 return (62863*a2*b2+31596*(a1*b2+a2*b1)+a1*b1)%MOD end
local function pow(a,b)local ret=1 while(b>0)do if(b%2==1)then ret=mul(ret,a)b=b-1 end a=mul(a,a)b=b*.5 end return ret end
local function inv(x)local a,b,u,v=x,MOD,1,0 repeat local t=math.floor(a/b)a,b=b,a-t*b u,v=v,u-t*v until(b==0)return u%MOD end
local function div(a,b)return mul(a,inv(b))end

N=io.read"*n"
M=io.read"*n"
K=io.read"*n"

ret=0
c=1
for i=0,K do
	ret=add(ret, mul(c, mul(M, pow(M-1, N-i-1))))
	c=div(mul(c,N-i-1),i+1)
end
print(ret)