#include <bits/stdc++.h>
using namespace std;
const long double EPS = 1e-11;
const long double PI = acos(-1.0);
const int INF = (int)1e9 + 5;
const long long LINF = (long long)1e18 + 5;
template <class T>
long long abs(const T& x) {
  return x < 0 ? -x : x;
}
template <class T>
long long round(const T& x) {
  return x < 0 ? x - 0.5 : x + 0.5;
}
template <class T>
bool chmin(T& x, const T& y) {
  if (y < x) {
    x = y;
    return true;
  }
  return false;
}
template <class T>
bool chmax(T& x, const T& y) {
  if (x < y) {
    x = y;
    return true;
  }
  return false;
}
long long foo(long long w, long long h) {
  if (w == 0) return 0;
  if (h < w) {
    long long k = w / h;
    if (w - k * h == 0) return k * h * 2 + foo(w - k * h, h) - h;
    return k * h * 2 + foo(w - k * h, h);
  }
  long long k = h / w;
  if (h - k * w == 0) return k * w * 2 + foo(w, h - k * 2) - w;
  return k * w * 2 + foo(w, h - k * w);
}
long long triangle(long long n, long long x) { return n + foo(x, n - x); }
int main() {
  long long n, k;
  cin >> n >> k;
  cout << triangle(n, k) << endl;
}
