N,M=map(int,input().split()) piyo=[1]*(M+1) hoge=list(range(M+1)) prime=[] for p in range(2,M+1): if hoge[p]==p: prime.append(p) for i in range(p,M+1,p): neko=0 while hoge[i]%p==0: hoge[i]//=p neko+=1 piyo[i]*=neko+1 for i in range(M+1):piyo[i]=pow(piyo[i],N,998244353) for p in prime: for k in range(M//p,0,-1): piyo[k*p]-=piyo[k] if piyo[k*p]<0:piyo[k*p]+=998244353 print(sum(M//i*piyo[i] for i in range(1,M+1))%998244353)