#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <queue>
#include <set>
#include <ctime>
#include <cstdlib>
using namespace std;
#define inf 0x3f3f3f3f
#define N 10000020
#define M 1000020
#define LL long long
#define mod 1000000007
#define ls (i << 1)
#define rs (ls | 1)
#define md (ll + rr >> 1)
#define lson ll, md, ls
#define rson md + 1, rr, rs
#define B 350
int n, m;
int qpow(int x, int k) {
int ret = 1;
while(k) {
if(k & 1) ret = 1LL * ret * x % mod;
k >>= 1;
x = 1LL * x * x % mod;
}
return ret;
}
bool check(int k) {
if(n == 1) return 1;
LL sum = 1, t = 1LL * k * m;
double c = 1;
LL s = 1;
for(int i = 1; i <= k; ++i) {
LL x = t / i, y = mod;
if(x == 0) return 0;
c = c * (k - i + 1) / i;
s = s * (k - i + 1) % mod * qpow(i, mod - 2) % mod;
if(c < mod) y = s;
x = min(x, y);
sum += x;
if(sum >= n) return 1;
t -= x * i;
}
return 0;
}
int main() {
int cas;
scanf("%d", &cas);
while(cas--) {
scanf("%d%d", &n, &m);
int l = 0, r = n;
while(l < r) {
int mid = (l + r) / 2;
if(check(mid)) r = mid;
else l = mid + 1;
}
printf("%d\n", l);
}
return 0;
}