#include <bits/stdc++.h>
using namespace std;
vector<pair<long long int, long long int> > kenarlara;
vector<pair<long long int, long long int> > kenarlarb;
long long int uygunluk(pair<long long int, long long int> kenar) {
  for (long long int i = 0; i < kenarlara.size(); i++) {
    if (kenarlara[i].first <= kenar.first &&
        kenarlara[i].second <= kenar.second)
      return 1;
    if (kenarlara[i].second <= kenar.first &&
        kenarlara[i].first <= kenar.second)
      return 1;
  }
  for (long long int i = 0; i < kenarlarb.size(); i++) {
    if (kenarlarb[i].first <= kenar.first &&
        kenarlarb[i].second <= kenar.second)
      return 1;
    if (kenarlarb[i].second <= kenar.first &&
        kenarlarb[i].first <= kenar.second)
      return 1;
  }
  return 0;
}
int32_t main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  long long int a, b, area;
  vector<pair<long long int, long long int> > kenarlar;
  cin >> a >> b;
  area = a + b;
  for (long long int i = 1; i * i <= area; i++) {
    if (area % i == 0) {
      kenarlar.push_back(make_pair(i, area / i));
    }
  }
  for (long long int i = 1; i * i <= a; i++) {
    if (a % i == 0) {
      kenarlara.push_back(make_pair(i, a / i));
    }
  }
  for (long long int i = 1; i * i <= b; i++) {
    if (b % i == 0) {
      kenarlarb.push_back(make_pair(i, b / i));
    }
  }
  reverse(kenarlar.begin(), kenarlar.end());
  reverse(kenarlara.begin(), kenarlara.end());
  reverse(kenarlarb.begin(), kenarlarb.end());
  for (long long int i = 0; i < kenarlar.size(); i++) {
    if (uygunluk(kenarlar[i]) == 1) {
      cout << 2 * (kenarlar[i].first + kenarlar[i].second);
      return 0;
    }
  }
}
