#include <bits/stdc++.h>
using namespace std;
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
int pr[100010];
void uini(int n) {
  for (size_t i = 0; i <= n; i++) {
    pr[i] = i;
  }
}
int parent(int x) {
  if (x == pr[x]) return x;
  return pr[x] = parent(pr[x]);
}
bool unit(int x, int y) {
  int px = parent(x);
  int py = parent(y);
  if (px == py) return false;
  if (px < py) {
    pr[py] = px;
  } else {
    pr[px] = py;
  }
  return true;
}
long long at[30][30];
long long bt[30][30];
long long ar[30];
long long upt[30][30][30];
long long mid(long long x, long long y, long long z) {
  if (x <= y && y <= z) {
    return y;
  } else if (y <= x && x <= z) {
    return x;
  } else
    return z;
}
int c[30];
bool ta[101][101];
void solv() {
  long long n, x;
  cin >> n >> x;
  if (n == x * 2) {
    cout << (3 * x) << endl;
    return;
  }
  long long gre = max(x, n - x);
  long long p1 = gre;
  long long p2 = gre % (n - gre);
  if (p2 == 0) {
    p2 = n - gre;
  }
  long long edge = p1 - p2 + (n - gre);
  cout << (edge * 3) << endl;
}
int main() {
  solv();
  return 0;
}
