#include <bits/stdc++.h>
using namespace std;
void solve(){
long long a ,b ;
cin>>a>>b;
int op = 0;
int minops = INT_MAX;
// for the worst case scenario 10^9 and 1 we will need 30 max oprations log2(10^9) = 30
// dividing takes O(logn) time;
// so what we will do is that we will iterate b for 30 times and will try to find combination of
//type 1 and type 2 oprations so that it will take min
for(int i =0; i < 30 ; i++){
long long tempa = a;
long long tempb = b+i;
if(tempb == 1) continue;
int op = i;
while(tempa>0){
tempa=tempa/tempb;
op++;
}
minops = min(minops , op);
}
cout<<minops<<endl;
// while(a>0){
// b++;
// a=a/b;
// op++;
// minops = min(minops , op);
// }
}
int main() {
int t;
cin>>t;
while(t--){
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIHNvbHZlKCl7Cglsb25nIGxvbmcgYSAsYiA7CgljaW4+PmE+PmI7CgkKCWludCBvcCA9IDA7CglpbnQgbWlub3BzID0gSU5UX01BWDsKCgkvLyBmb3IgdGhlIHdvcnN0IGNhc2Ugc2NlbmFyaW8gMTBeOSAgYW5kIDEgd2Ugd2lsbCBuZWVkIDMwIG1heCBvcHJhdGlvbnMgbG9nMigxMF45KSA9IDMwIAoJLy8gZGl2aWRpbmcgdGFrZXMgTyhsb2duKSB0aW1lOwoJCgkvLyBzbyB3aGF0IHdlIHdpbGwgZG8gaXMgdGhhdCB3ZSB3aWxsIGl0ZXJhdGUgYiBmb3IgMzAgdGltZXMgYW5kIHdpbGwgdHJ5IHRvIGZpbmQgY29tYmluYXRpb24gb2YKCS8vdHlwZSAxIGFuZCB0eXBlIDIgb3ByYXRpb25zIHNvIHRoYXQgaXQgd2lsbCB0YWtlIG1pbiAKCQoKCWZvcihpbnQgaSA9MDsgaSA8IDMwIDsgaSsrKXsKCQlsb25nIGxvbmcgdGVtcGEgPSBhOwoJCWxvbmcgbG9uZyB0ZW1wYiA9IGIraTsKCQkKCQlpZih0ZW1wYiA9PSAxKSBjb250aW51ZTsKCQkKCQlpbnQgb3AgPSBpOwoJCXdoaWxlKHRlbXBhPjApewoJCQl0ZW1wYT10ZW1wYS90ZW1wYjsKCQkJb3ArKzsKCQl9CgkJbWlub3BzID0gbWluKG1pbm9wcyAsIG9wKTsKCX0KCQoJY291dDw8bWlub3BzPDxlbmRsOwoJCgkvLyB3aGlsZShhPjApewoJLy8gCWIrKzsKCS8vIAlhPWEvYjsKCS8vIAlvcCsrOwoJCQoJLy8gCW1pbm9wcyA9IG1pbihtaW5vcHMgLCBvcCk7CgkvLyB9CgkKCQp9CgoKCmludCBtYWluKCkgewoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pewoJCXNvbHZlKCk7Cgl9CglyZXR1cm4gMDsKfQ==