#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <functional> #include <algorithm> #include <string> #include <vector> #include <set> #include <map> #include <queue> #include <stack> using namespace std; template<class T, class Compare = less<T> > using MaxHeap = priority_queue<T, vector<T>, Compare>; template<class T, class Compare = greater<T> > using MinHeap = priority_queue<T, vector<T>, Compare>; using llong = long long; llong tmpn, tmpk; __int128_t n, k; int main() { llong q; cin >> q; while (q--) { cin >> tmpn >> tmpk; n = tmpn; k = tmpk; if (k == 1) { cout << tmpn - 1 << endl; continue; } __int128_t d = 1; __int128_t x = 0; llong cnt = -1; while (x < n) { x += d; d *= k; cnt++; } cout << cnt << endl; } return 0; }