#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using lld = double;
#define srt(a) sort(a.begin(),a.end());
#define rsrt(a) sort(a.rbegin(),a.rend());
#define pb push_back
using pll=pair<ll,ll>;
#define fi(a,b,c) for(ll a=b;a<c;a++)
#define f(a,c) for(ll a=0;a<c;a++)
#define rf(a,c) for(ll a=c;a>=0;a--)
#define cye cout<<"Yes\n"
#define cno cout<<"No\n"
#define vll vector<ll>
ll mod=1e9+7,N=1e6;
ll solve(ll a,ll b, ll x){
ll ans=1e9;
if(a==b)return 0;
if(a>b)
ans=min(ans,1+solve(a/x,b,x));
else
ans=min(ans,1+solve(a,b/x,x));
if(a<b)
ans=min(ans,1+solve(a+1,b,x));
else
ans=min(ans,1+solve(a,b+1,x));
return ans;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
ll t;
cin>>t;
while(t--){
ll a,b,x,c=0;
cin>>a>>b>>x;
while(abs(a-b)<5){
if(a==b)break;
if(a>b)a/=x;
else b/=x;
c++;
}
cout<<c+solve(a,b,x)<<'\n';
}
return 0;
}
I3ByYWdtYSBHQ0Mgb3B0aW1pemUoIk9mYXN0IikKI3ByYWdtYSBHQ0Mgb3B0aW1pemUoInVucm9sbC1sb29wcyIpCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp1c2luZyBsbCA9IGxvbmcgbG9uZzsKdXNpbmcgbGxkID0gZG91YmxlOwojZGVmaW5lIHNydChhKSBzb3J0KGEuYmVnaW4oKSxhLmVuZCgpKTsKI2RlZmluZSByc3J0KGEpIHNvcnQoYS5yYmVnaW4oKSxhLnJlbmQoKSk7CiNkZWZpbmUgcGIgcHVzaF9iYWNrCnVzaW5nIHBsbD1wYWlyPGxsLGxsPjsKI2RlZmluZSBmaShhLGIsYykgZm9yKGxsIGE9YjthPGM7YSsrKQojZGVmaW5lIGYoYSxjKSBmb3IobGwgYT0wO2E8YzthKyspCiNkZWZpbmUgcmYoYSxjKSBmb3IobGwgYT1jO2E+PTA7YS0tKQojZGVmaW5lIGN5ZSBjb3V0PDwiWWVzXG4iCiNkZWZpbmUgY25vIGNvdXQ8PCJOb1xuIgojZGVmaW5lIHZsbCB2ZWN0b3I8bGw+IApsbCBtb2Q9MWU5KzcsTj0xZTY7CmxsIHNvbHZlKGxsIGEsbGwgYiwgbGwgeCl7CiAgICBsbCBhbnM9MWU5OwogICAgaWYoYT09YilyZXR1cm4gMDsKICAgIGlmKGE+YikKICAgIGFucz1taW4oYW5zLDErc29sdmUoYS94LGIseCkpOwogICAgZWxzZQogICAgYW5zPW1pbihhbnMsMStzb2x2ZShhLGIveCx4KSk7CiAgICBpZihhPGIpCiAgICBhbnM9bWluKGFucywxK3NvbHZlKGErMSxiLHgpKTsKICAgIGVsc2UKICAgIGFucz1taW4oYW5zLDErc29sdmUoYSxiKzEseCkpOwogICAgcmV0dXJuIGFuczsKfQppbnQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CiAgICBsbCB0OwogICAgY2luPj50OwogICAgd2hpbGUodC0tKXsKICAgIGxsIGEsYix4LGM9MDsKICAgIGNpbj4+YT4+Yj4+eDsKICAgIHdoaWxlKGFicyhhLWIpPDUpewogICAgICAgIGlmKGE9PWIpYnJlYWs7CiAgICAgICAgaWYoYT5iKWEvPXg7CiAgICAgICAgZWxzZSBiLz14OwogICAgICAgIGMrKzsKICAgIH0KICAgIGNvdXQ8PGMrc29sdmUoYSxiLHgpPDwnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=