#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int t, node,nodeatm, count;
cin >> t;
int n[t], m[t];
for (int i = 0; i < t; i++)
{
cin >> n[i];
cin >> m[i];
node = pow(2,n[i])-1;
count = 0;
int rem = 0;
for(int q = 0; q < n[i]; q++)
{
nodeatm = pow(2,q) + rem ;
if(nodeatm <= m[i])
{
count++;
rem = 0;
}
else
{
while(nodeatm >= m[i])
{
nodeatm -= m[i];
count++;
}
rem = nodeatm;
}
}
if( rem )
{
count++;
}
cout << count << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKQp7CmludCB0LCBub2RlLG5vZGVhdG0sIGNvdW50OwpjaW4gPj4gdDsKaW50IG5bdF0sIG1bdF07Cgpmb3IgKGludCBpID0gMDsgaSA8IHQ7IGkrKykKewogIGNpbiA+PiBuW2ldOwogIGNpbiA+PiBtW2ldOwogIG5vZGUgPSBwb3coMixuW2ldKS0xOwogIGNvdW50ID0gMDsKICBpbnQgcmVtID0gMDsKICBmb3IoaW50IHEgPSAwOyBxIDwgbltpXTsgcSsrKQogIHsKICAgIG5vZGVhdG0gPSBwb3coMixxKSArIHJlbSA7CiAgICBpZihub2RlYXRtIDw9IG1baV0pCiAgICB7CiAgICAgIGNvdW50Kys7CiAgICAgIHJlbSA9IDA7CiAgICB9CiAgICBlbHNlCiAgICB7CiAgICAJd2hpbGUobm9kZWF0bSA+PSBtW2ldKQogICAgCXsKICAgIAkJbm9kZWF0bSAtPSBtW2ldOwogICAgCQljb3VudCsrOwogICAgCX0KICAgIAlyZW0gPSBub2RlYXRtOwogICAgfQoKICB9CiAgCiAgaWYoIHJlbSApCiAgewogIAljb3VudCsrOwogIH0KICBjb3V0IDw8IGNvdW50IDw8IGVuZGw7Cn0KCiAgcmV0dXJuIDA7Cn0=