#include "iostream" #include "math.h" #include "queue" using namespace std; long mark[210000]; long lev[210000]; long BFS(long s, long e) { long front; memset(mark,0,sizeof(mark)); memset(lev,0,sizeof(lev)); queue <long> seq; seq.push(s); mark[s]=1; while(!seq.empty()) { front=seq.front(); if(front==e) { while(!seq.empty()) seq.pop(); return lev[front]; } seq.pop(); if(!mark[front-1]&&front-1>=0&&front-1<=100000) { seq.push(front-1); mark[front-1]=1; lev[front-1]=lev[front]+1; } if(!mark[front+1]&&front+1>=0&&front+1<=100000) { seq.push(front+1); mark[front+1]=1; lev[front+1]=lev[front]+1; } if(!mark[front * 2]&&front*2>=0 && front*2 <=100000) { seq.push(front*2); mark[front*2]=1; lev[front*2]=lev[front]+1; } } return 0; } int main() { long a,b; while(scanf("%ld %ld",&a,&b)!=EOF) { printf("%ld/n",BFS(a,b)); } return 0; }