from collections import defaultdict,deque import sys,heapq,bisect,math,itertools,string,queue,copy,time sys.setrecursionlimit(10**8) INF = float('inf') mod = 10**9+7 eps = 10**-7 def inp(): return int(sys.stdin.readline()) def inpl(): return list(map(int, sys.stdin.readline().split())) def inpl_str(): return list(sys.stdin.readline().split()) Q = inp() for q in range(Q): A,B,C = inpl() if C == 1: print(A*B) else: ans = 0 while A > 1: if A%C == 0: A //= C else: A -= A%C ans += B print(ans)