#include<bits/stdc++.h>
using namespace std;
int t,x,y,qf,sss,visited[100005];
bool point;
queue<int> q;
void bfs(int xx)
{
if(visited[xx+1]==0)
{
visited[xx+1]=1;
q.push(xx+1);
}
if(xx-1>=0)
{
if(visited[xx-1]==0)
{
visited[xx-1]=1;
q.push(xx-1);
}
}
if(2*x<200500)
{
if(visited[2*xx]==0)
{
visited[2*xx]=1;
q.push(2*xx);
}
}
}
void clean()
{
for(int i=0;i<=100000;i++)
visited[i]=0;
}
int main()
{
cin>>t;
for(int i=1;i<=t;i++)
{
cin>>x>>y;
q.push(x);
visited[x]=1;
for(int m=0;!q.empty();m++)
{
sss=q.size();
for(int l=1;l<=sss;l++)
{
qf=q.front();
if(qf==y)
{
cout<<m<<endl;
point=true;
break;
}
q.pop();
bfs(qf);
}
if(point)
break;
}
point=false;
clean();
}
return 0;
}
Re 求助