m=[int(input("指数"))] n=[int(input("底"))] p=998244353 i=0 o=[1] s=0 if n[0]%p==0: print(0) elif n[0]==1: print(1) else: while m[i]>1: if (m[i])%2==0: m.append(int(m[i]/2)) n.append(int((n[i]*n[i])%p)) else: m.append(int((m[i]-1)/2)) n.append(int(n[i]*n[i])%p) o.append(n[i]) if n[i+1]==1: print(1) m[i+1]=1 s=1 i += 1 o.pop(0) if s==0: a=n[i] for t in range(0,len(o)): a=a*o[t] a=a%p print(a)