#include int ri() { int n; scanf("%d", &n); return n; } int64_t solve(int a, int b, int c) { if (c == 1) return -1; std::vector keta; for (; a; a /= c) keta.push_back(a % c); std::reverse(keta.begin(), keta.end()); if (keta.size() == 1) return b; int64_t res = 0; if (keta[0] == 1 && keta[1] < c - 1) res += 2; else res += !!keta[1] + 2; int head = 2; for (; head < (int) keta.size(); head++) { if (keta[head]) res++; res++; } return res * b; } int main() { int q = ri(); for (int i = 0; i < q; i++) { int a = ri(), b = ri(), c = ri(); std::cout << solve(a, b, c) << std::endl; } return 0; }