#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int a, b, sum;
  bool ok;
  cin >> a >> b;
  sum = a + b;
  vector<pair<long long int, long long int> > factors_a;
  vector<pair<long long int, long long int> > factors_b;
  long long int i;
  long long int mini = 999999999999999;
  pair<long long int, long long int> temp;
  for (i = 1; i <= sqrt(a); i++)
    if (a % i == 0) {
      temp.first = i;
      temp.second = a / i;
      factors_a.push_back(temp);
    }
  for (i = 1; i <= sqrt(b); i++)
    if (b % i == 0) {
      temp.first = i;
      temp.second = b / i;
      factors_b.push_back(temp);
    }
  for (i = 1; i <= sqrt(sum); i++) {
    if (sum % i == 0) {
      temp.first = i;
      temp.second = sum / i;
      ok = false;
      for (int j = 0; j < factors_a.size(); j++) {
        if (max(factors_a[j].first, factors_a[j].second) <=
            min(temp.first, temp.second)) {
          ok = true;
          break;
        } else if (!ok &&
                   max(factors_a[j].first, factors_a[j].second) <=
                       max(temp.first, temp.second) &&
                   min(factors_a[j].first, factors_a[j].second) <=
                       min(temp.first, temp.second)) {
          ok = true;
          break;
        }
      }
      if (!ok) {
        for (int j = 0; j < factors_b.size(); j++) {
          if (max(factors_b[j].first, factors_b[j].second) <=
              min(temp.first, temp.second)) {
            ok = true;
            break;
          } else if (!ok &&
                     max(factors_b[j].first, factors_b[j].second) <=
                         max(temp.first, temp.second) &&
                     min(factors_b[j].first, factors_b[j].second) <=
                         min(temp.first, temp.second)) {
            ok = true;
            break;
          }
        }
      }
      if (ok) {
        if (mini > 2 * (i + (sum / i))) mini = 2 * (i + (sum / i));
      }
    }
  }
  cout << mini;
  return 0;
}
