N,B,M=map(int,input().split()) assert(0<=N) assert(N<=10**18) assert(0<=M) assert(M<=10**18) assert(2<=B) assert(B<=10**18) print('Yes') X=[] while N>0: X.append(N%B) N//=B if len(X)==0: if 2<=M: print('Yes') print(2) else: print('No') exit() B+=X[0] ANS=X[0]*2 X[0]=0 X.append(0) while 1: if X[1]>=70 or ANS>M: print('No') exit() if max(X)==0: ANS+=2 break for i in range(1,len(X)): if X[i]>0: X[i]-=1 B+=1 ANS+=2 for j in range(i): X[j]=B-1 break B+=X[0] ANS+=X[0]*2 X[0]=0 if ANS<=M: print('Yes') print(ANS) else: print('No')