#include <bits/stdc++.h>
#pragma GCC optimize "03"
using namespace std;
const long long int N = 1e5 + 5;
const long long int mod = 1e9 + 7;
const long long int inf = 1e18 + 9;
vector<long long int> aa, bb;
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long int a, b;
  cin >> a >> b;
  for (long long int i = 1; i * i <= a; i++) {
    if (a % i == 0) {
      aa.push_back(i);
      if (a / i != i) aa.push_back(a / i);
    }
  }
  for (long long int i = 1; i * i <= b; i++) {
    if (b % i == 0) {
      bb.push_back(i);
      if (b / i != i) bb.push_back(b / i);
    }
  }
  sort(aa.begin(), aa.end());
  sort(bb.begin(), bb.end());
  long long int ans = inf, s = a + b, x1 = 0, x2 = aa.size() - 1;
  long long int x3 = 0, x4 = bb.size() - 1;
  for (long long int i = 1; i * i <= s; i++) {
    if (s % i != 0) continue;
    long long int x;
    while (x1 < aa.size() && aa[x1] <= i) x1++;
    x = x1 - 1;
    if (x != -1)
      if (a / aa[x] <= s / i) ans = min(ans, 2 * (i + s / i));
    while (x2 >= 0 && aa[x2] > s / i) x2--;
    x = x2;
    if (x != -1)
      if (a / aa[x] <= i) ans = min(ans, 2 * (i + s / i));
    while (x3 < bb.size() && bb[x3] <= i) x3++;
    x = x3 - 1;
    if (x != -1)
      if (b / bb[x] <= s / i) ans = min(ans, 2 * (i + s / i));
    while (x4 >= 0 && bb[x4] > s / i) x4--;
    x = x4;
    if (x != -1)
      if (b / bb[x] <= i) ans = min(ans, 2 * (i + s / i));
  }
  cout << ans;
  return 0;
}
