#include <bits/stdc++.h>
int comp(const void* a, const void* b) { return *(int*)a - *(int*)b; }
void fill(int a[], int b, int c) {
  int i;
  for (i = (0); i < (b); i++) a[i] = c;
  return;
}
long long dfs(long long a, long long b) {
  if (a > b) do {
      long long t = a;
      a = b;
      b = t;
    } while (0);
  ;
  if (b % a)
    return 2 * a * ((b - 1) / a) + dfs(a, b % a);
  else
    return 2 * a * ((b - 1) / a) + 1;
}
int main(void) {
  long long n, x;
  scanf("%lld%lld", &n, &x);
  printf("%lld\n", n + dfs(x, n - x));
  return 0;
}
