#include<bits/stdc++.h>
#define sjh0626s
#define code
using namespace std;
int n,s,e;
struct node{int a,b;};
int main(){
cin>>n;
while(n--){
bool vis[3000100];
cin>>s>>e;
queue<node>q;
vis[s]=1;
q.push({s,0});
while(!q.empty()){
node u=q.front();
q.pop();
int u1=u.a+1;
int u2=u.a-1;
int u3=2*u.a;
if(u1==e||u2==e||u3==e){cout<<u.b+1<<endl;break;}
if(u1>-1&&vis[u1]==0){q.push({u1,u.b+1});vis[u1]=1;}
if(u2>-1&&vis[u2]==0){q.push({u2,u.b+1});vis[u2]=1;}
if(u3>-1&&vis[u3]==0){q.push({u3,u.b+1});vis[u3]=1;}
}
}
sjh0626s code;
}