#include <bits/stdc++.h>
using namespace std;
int n, k, visited[500004], ret = -1;
queue<int> q;
int main(){
cin >> n >> k;
q.push(n);
visited[n] = 1;
int cnt = 1;
while(q.size()){
int here = q.front();
q.pop();
if(here == k || here > 500000){
ret = visited[k] - 1;
break;
}
k += cnt++;
for(int next : {here + 1, here - 1, here * 2}){
if(next < 0 || next > 500000 || visited[next]) continue;
q.push(next);
visited[next] = visited[here] + 1;
}
}
cout << ret << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCBrLCB2aXNpdGVkWzUwMDAwNF0sIHJldCA9IC0xOwpxdWV1ZTxpbnQ+IHE7CmludCBtYWluKCl7CiAgICBjaW4gPj4gbiA+PiBrOwogICAgcS5wdXNoKG4pOwogICAgdmlzaXRlZFtuXSA9IDE7CiAgICBpbnQgY250ID0gMTsKICAgIHdoaWxlKHEuc2l6ZSgpKXsKICAgICAgICBpbnQgaGVyZSA9IHEuZnJvbnQoKTsKICAgICAgICBxLnBvcCgpOwogICAgICAgIAogICAgICAgIGlmKGhlcmUgPT0gayB8fCBoZXJlID4gNTAwMDAwKXsKICAgICAgICAgICAgcmV0ID0gdmlzaXRlZFtrXSAtIDE7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAKICAgICAgICBrICs9IGNudCsrOwogICAgICAgIAogICAgICAgIGZvcihpbnQgbmV4dCA6IHtoZXJlICsgMSwgaGVyZSAtIDEsIGhlcmUgKiAyfSl7CiAgICAgICAgICAgIGlmKG5leHQgPCAwIHx8IG5leHQgPiA1MDAwMDAgfHwgdmlzaXRlZFtuZXh0XSkgY29udGludWU7CiAgICAgICAgICAgIHEucHVzaChuZXh0KTsKICAgICAgICAgICAgdmlzaXRlZFtuZXh0XSA9IHZpc2l0ZWRbaGVyZV0gKyAxOwogICAgICAgIH0KICAgIH0KICAgIAogICAgY291dCA8PCByZXQgPDwgJ1xuJzsKfQ==