#include <bits/stdc++.h>
using namespace std;
bool vis[6];
int a[6];
int temp[6];
int go(int a1, int a2, int a3, int a4, int a5, int a6) {
  if (a2 + a5 != a3 + a4 || a1 + a2 != a4 + a6 || a1 + a3 != a5 + a6) return -1;
  if ((a2 + a3 - a4 - a5) % 2 != 0 || (a1 + a5 - a3 - a6) % 2 != 0 ||
      (a2 + a6 - a1 - a4) % 2 != 0)
    return -1;
  if (a1 + (a2 + a3 - a4 - a5) / 2 != a6 ||
      a2 + (a1 + a5 - a3 - a6) / 2 != a4 || a5 + (a2 + a6 - a1 - a4) / 2 != a3)
    return -1;
  int sum = 0;
  a1 = a1 * 2 - 1;
  do {
    sum += a1;
    if (a2 > 0 && a3 > 0) {
      a1 += 2;
      sum += 2;
      a2--;
      a3--;
    } else {
      if (a2 == 0 && a3 == 0) {
        a1 -= 2;
        a4--;
        a5--;
      } else {
        sum++;
        if (a2 > 0)
          a2--;
        else
          a5--;
        if (a3 > 0)
          a3--;
        else
          a4--;
      }
    }
  } while (a4 > 0);
  return sum;
}
int dfs(int x) {
  if (x > 6) {
    int res = go(a[temp[0]], a[temp[1]], a[temp[2]], a[temp[3]], a[temp[4]],
                 a[temp[5]]);
    return res;
  }
  for (int i = 0; i < 6; i++) {
    if (!vis[i]) {
      temp[x - 1] = i;
      vis[i] = true;
      int res = dfs(x + 1);
      if (res != -1) return res;
      vis[i] = false;
    }
  }
  return -1;
}
int main() {
  for (int i = 0; i < 6; i++) cin >> a[i];
  cout << dfs(1) << endl;
}
