#include using namespace std; struct Node { int number; //值 int cnt; //次数 }; const int N = 1e5 + 10; bool st[N]; int main() { int a, b; cin >> a >> b; queue q; q.push({a, 0}); st[a] = true; while (q.size()) { auto t = q.front(); q.pop(); if (t.number == b) { cout << t.cnt << endl; break; } if (!st[t.number + 1]) { st[t.number + 1] = true; q.push({t.number + 1, t.cnt + 1}); } if (!st[t.number * 2]) { st[t.number * 2] = true; q.push({t.number * 2, t.cnt + 1}); } } return 0; }