#include <bits/stdc++.h>
using std::max;
const int maxn = 42 << 3;
int a[3], b[3], ans;
bool v[maxn][maxn][maxn];
void dfs(int A, int B, int C) {
  if (v[A][B][C]) return;
  v[A][B][C] = 1;
  int i, j, u, t, x, y;
  int p[3] = {A >> 3, B >> 3, C >> 3}, w[3] = {-1, -1, -1};
  bool g[3] = {0, 0, 0};
  if (t = A & 3, t == 1 || t == 2) g[w[0] = t] = 1;
  if (t = B & 3, t == 1 || t == 2) g[w[1] = (t == 1) ? 2 : 0] = 1;
  if (t = C & 3, t == 1 || t == 2) g[w[2] = t - 1] = 1;
  ans = max(max(ans, p[0]), max(p[1], p[2]));
  if (!g[i = 0]) {
    u = A, t = u & 3, x = 1, y = 2;
    if (w[i] == -1 && !((u >> 2) & 1))
      for (j = max(p[i] - a[i], 0); j <= p[i] + a[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          dfs((((j << 1) | 1) << 2) | t, B, C);
    if (!t) {
      if (!g[x] && (p[i] - p[x] == 1 || p[x] - p[i] == 1))
        if (w[x] == -1)
          dfs((u >> 2 << 2) | 1, (p[i] << 3) | (B & 7), C);
        else
          dfs((u >> 2 << 2) | 1, (p[i] << 3) | (B & 7), (p[i] << 3) | (C & 7));
      if (!g[y] && (p[i] - p[y] == 1 || p[y] - p[i] == 1))
        if (w[y] == -1)
          dfs((u >> 2 << 2) | 2, B, (p[i] << 3) | (C & 7));
        else
          dfs((u >> 2 << 2) | 2, (p[i] << 3) | (B & 7), (p[i] << 3) | (C & 7));
    }
    if (x == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs((u >> 2 << 2) | 3, (j << 3) | (B & 7), C);
          else
            dfs((u >> 2 << 2) | 3, (j << 3) | (B & 7), (j << 3) | (C & 7));
    } else if (y == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs((u >> 2 << 2) | 3, B, (j << 3) | (C & 7));
          else
            dfs((u >> 2 << 2) | 3, (j << 3) | (B & 7), (j << 3) | (C & 7));
    }
  }
  if (!g[i = 1]) {
    u = B, t = u & 3, x = 2, y = 0;
    if (w[i] == -1 && !((u >> 2) & 1))
      for (j = max(p[i] - a[i], 0); j <= p[i] + a[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          dfs(A, (((j << 1) | 1) << 2) | t, C);
    if (!t) {
      if (!g[x] && (p[i] - p[x] == 1 || p[x] - p[i] == 1))
        if (w[x] == -1)
          dfs(A, (u >> 2 << 2) | 1, (p[i] << 3) | (C & 7));
        else
          dfs((p[i] << 3) | (A & 7), (u >> 2 << 2) | 1, (p[i] << 3) | (C & 7));
      if (!g[y] && (p[i] - p[y] == 1 || p[y] - p[i] == 1))
        if (w[y] == -1)
          dfs((p[i] << 3) | (A & 7), (u >> 2 << 2) | 2, C);
        else
          dfs((p[i] << 3) | (A & 7), (u >> 2 << 2) | 2, (p[i] << 3) | (C & 7));
    }
    if (x == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs(A, (u >> 2 << 2) | 3, (j << 3) | (C & 7));
          else
            dfs((j << 3) | (A & 7), (u >> 2 << 2) | 3, (j << 3) | (C & 7));
    } else if (y == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs((j << 3) | (A & 7), (u >> 2 << 2) | 3, C);
          else
            dfs((j << 3) | (A & 7), (u >> 2 << 2) | 3, (j << 3) | (C & 7));
    }
  }
  if (!g[i = 2]) {
    u = C, t = u & 3, x = 0, y = 1;
    if (w[i] == -1 && !((u >> 2) & 1))
      for (j = max(p[i] - a[i], 0); j <= p[i] + a[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          dfs(A, B, (((j << 1) | 1) << 2) | t);
    if (!t) {
      if (!g[x] && (p[i] - p[x] == 1 || p[x] - p[i] == 1))
        if (w[x] == -1)
          dfs((p[i] << 3) | (A & 7), B, (u >> 2 << 2) | 1);
        else
          dfs((p[i] << 3) | (A & 7), (p[i] << 3) | (B & 7), (u >> 2 << 2) | 1);
      if (!g[y] && (p[i] - p[y] == 1 || p[y] - p[i] == 1))
        if (w[y] == -1)
          dfs(A, (p[i] << 3) | (B & 7), (u >> 2 << 2) | 2);
        else
          dfs((p[i] << 3) | (A & 7), (p[i] << 3) | (B & 7), (u >> 2 << 2) | 2);
    }
    if (x == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs((j << 3) | (A & 7), B, (u >> 2 << 2) | 3);
          else
            dfs((j << 3) | (A & 7), (j << 3) | (B & 7), (u >> 2 << 2) | 3);
    } else if (y == w[i]) {
      for (j = max(p[i] - b[i], 0); j <= p[i] + b[i]; ++j)
        if ((j != p[0] && j != p[1] && j != p[2]))
          if (w[x] == -1)
            dfs(A, (j << 3) | (B & 7), (u >> 2 << 2) | 3);
          else
            dfs((j << 3) | (A & 7), (j << 3) | (B & 7), (u >> 2 << 2) | 3);
    }
  }
}
int main() {
  if (0) {
    freopen("t.in", "r", stdin);
    freopen("t.out", "w", stdout);
  }
  int i, x[3];
  for (i = 0; i < 3; ++i) scanf("%d%d%d", x + i, a + i, b + i);
  dfs(x[0] - 1 << 3, x[1] - 1 << 3, x[2] - 1 << 3);
  printf("%d", ans + 1);
  return 0;
}
