from collections import defaultdict MOD=998244353 N,M=map(int,input().split()) use=set() for i in range(1,M+1): if M%i==0: use.add(i) use.add(M//i) if i*i>M: break use=sorted(list(use),reverse=True) count=defaultdict(int) count[M]=1 ans=0 for i in use: now=set() for j in range(1,i+1): if i%j==0: now.add(j) now.add(i//j) if j*j>i: break ans+=count[i]*pow(len(now),N,MOD) ans%=MOD for j in now: if j==i: continue count[j]-=count[i] print(ans)