#include using namespace std; typedef unsigned long long ull; typedef long long ll; typedef pair pii; typedef pair pll; typedef pair pdd; const ull mod = 1e9 + 7; #define REP(i,n) for(int i=0;i<(int)n;++i) //debug #define dump(x) cerr << #x << " = " << (x) << endl; #define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl; template ostream& operator << (ostream& os, const pair v){ os << "(" << v.first << ", " << v.second << ")"; return os; } template ostream& operator << (ostream& os, const vector v){ for(int i = 0; i < (int)v.size(); i++){if(i > 0){os << " ";} os << v[i];} return os; } template ostream& operator << (ostream& os, const vector> v){ for(int i = 0; i < (int)v.size(); i++){if(i > 0){os << endl;} os << v[i];} return os; } int main(){ cin.tie(0); ios::sync_with_stdio(false); ll Q; cin >> Q; while(Q--){ ll A, B, C; cin >> A >> B >> C; if(C==1){ cout << -1 << endl; continue; } ll cnt = 0; ll res = (1ll<<60); while(A>0){ res = min(res, cnt+(A+(C-2))/(C-1)); if(A%C){ A -= (A%C); }else{ A /= C; } cnt++; } res = min(res, cnt); cout << res*B << endl; } return 0; }