#include <bits/stdc++.h>
#pragma GCC optimize("Ofast")
using namespace std;
const long double PI = acos(-1.0L);
const long long MOD = 1000000007LL;
template <class T>
inline bool chmax(T &a, T b) {
  if (a < b) {
    a = b;
    return true;
  }
  return false;
}
template <class T>
inline bool chmin(T &a, T b) {
  if (a > b) {
    a = b;
    return true;
  }
  return false;
}
long long ans = 0;
void f(long long P, long long Q) {
  cout << P << " " << Q << endl;
  if (P < Q) swap(P, Q);
  long long s = P / Q;
  long long t = P % Q;
  if (t == 0) {
    ans += (s - 1LL) * Q * 2LL;
    return;
  }
  ans += (s * 2LL - 1LL) * Q + t;
  f(Q, t);
  return;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  long long N, X;
  cin >> N >> X;
  ans += X;
  f(N, N - X);
  cout << ans << endl;
}
