#include <bits/stdc++.h>
using namespace std;
long long dx[] = {1, -1, 0, 0};
long long dy[] = {0, 0, 1, -1};
int vis[2001], d[2001];
vector<int> A[2001];
void dfs(int s, int n) {
  vis[s] = 1;
  d[s] = n;
  for (int i = 0; i < A[s].size(); i++) {
    int x = A[s][i];
    if (!vis[x]) {
      dfs(x, n + 1);
    }
  }
}
int main() {
  long long n, x, ans = 0;
  cin >> n >> x;
  ans += n;
  while (1) {
    x = min(x, n - x);
    n = max(x, n - x);
    if (n - x == 0) break;
    if (x == 1 && n == 1) break;
    ans += 2 * x;
  }
  ans += x;
  cout << ans << endl;
  return 0;
}
