def yakusunowa(N): if N==0: return 0 ANS=0 for n in range(1,N+1): if n**2==N: ANS+=n break elif n**2>N: break else: if N%n==0: ANS+=n+N//n return ANS A=[[]] for a in range(100003): A[0].append(yakusunowa(a)%100003) for a in range(60): A.append([]) for b in range(100003): A[a+1].append(A[a][A[a][b]]) N,K=map(int,input().split()) #print(A[0]) if K==1: print(N) else: K=K-1 ANS=A[0][(N%100003)] K=K-1 for a in range(0,61): if K%2==1: ANS=A[a][ANS] K=K>>1 print(ANS)