#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
bool check(vector<int> a, int y) { return a[0] == y && a[1] == y && a[2] == y; }
int get_sum(vector<int> a) {
  int m = *min_element(a.begin(), a.end());
  for (int i = 0; i < 3; i++) {
    if (a[i] == m) {
      for (int j = i; j < 3 - 1; j++) {
        a[j] = a[j + 1];
      }
      a.pop_back();
      break;
    }
  }
  return a[0] + a[1];
}
int get_min_idx(vector<int> a) {
  int m = min(a[0], min(a[1], a[2]));
  for (int i = 0; i < 3; i++) {
    if (a[i] == m) return i;
  }
}
int main() {
  int x, y;
  cin >> x >> y;
  vector<int> a(3, y);
  int cnt = 0;
  while (!check(a, x)) {
    cnt++;
    a[get_min_idx(a)] = min(get_sum(a) - 1, x);
  }
  cout << cnt << endl;
}
