#include <bits/stdc++.h>
using namespace std;
void init_ios() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
}
const long long N = 110;
long long n, x;
long long rowno(long long a, long long b) {
  if (a == b) return 2 * a;
  if (a < b) return 2 * a + rowno(a, b - a);
  if (a % b == 0) return a + (2 * (a / b - 1) + 1) * b;
  return a + (2 * (a / b) * b) + a % b + rowno(a % b, b - a % b);
}
long long licz(long long n, long long x) {
  if (n - x == x) return 3 * x;
  if (n - x > x) return n + x + rowno(x, n - 2 * x);
  if (x % (n - x) == 0) return 3 * x;
  return n + (x / (n - x)) * (n - x) * 2 + x % (n - x) +
         rowno(x % (n - x), n - x - (x % (n - x)));
}
signed main() {
  init_ios();
  cin >> n >> x;
  cout << licz(n, x) << "\n";
}
