#include <bits/stdc++.h>
using namespace std;
const int INF = 1000000000;
long long int tate(long long int y, long long int t, long long int d);
long long int yoko(long long int y, long long int t, long long int d) {
  long long int M = y % t, x = y / t;
  if (M == 0)
    return d + (x - 1) * 2 * t + t;
  else {
    d += x * 2 * t;
    return tate(M, t, d);
  }
}
long long int tate(long long int y, long long int t, long long int d) {
  long long int M = t % y, x = t / y;
  if (M == 0)
    return d + (x - 1) * 2 * t + t;
  else {
    d += x * 2 * y;
    return yoko(y, M, d);
  }
}
int main() {
  long long int N, X;
  cin >> N >> X;
  cout << tate(X, N - X, N) << endl;
}
