import sys import io, os sys.setrecursionlimit(10**9) input = io.BytesIO(os.read(0,os.fstat(0).st_size)).readline q = int(input()) for _ in range(q): a, b, c = map(int, input().split()) if c == 1: print(-1) continue memo = {} def dfs(x): if x == 0: return 0 res = (x+c-2)//(c-1) if x == (x//c)*c: res = min(res, 1+dfs(x//c)) else: res = min(res, 2+dfs(x//c)) memo[x] = res return res ans = dfs(a) print(ans*b)