#include <bits/stdc++.h>
using namespace std;
const bool debug = !false;
const int maxc = 42;
int w[3], t[3], answer = 0;
bool used[maxc][8][maxc][8][maxc][8];
inline bool AisFree(int sa, int sb, int sc) {
  return sc / 2 != 1 && sb / 2 != 1;
}
inline bool BisFree(int sa, int sb, int sc) {
  return sc / 2 != 2 && sa / 2 != 1;
}
inline bool CisFree(int sa, int sb, int sc) {
  return sa / 2 != 2 && sb / 2 != 2;
}
void dfs(int a, int sa, int b, int sb, int c, int sc) {
  if (a < 0 || b < 0 || c < 0) return;
  if (used[a][sa][b][sb][c][sc]) return;
  answer = max(answer, a);
  answer = max(answer, b);
  answer = max(answer, c);
  used[a][sa][b][sb][c][sc] = true;
  if (sa % 2 == 0 && (sa / 2 == 0 || sa / 2 == 3) && AisFree(sa, sb, sc))
    for (int i = -w[0]; i <= w[0]; i++) dfs(a + i, sa + 1, b, sb, c, sc);
  if (sb % 2 == 0 && (sb / 2 == 0 || sb / 2 == 3) && BisFree(sa, sb, sc))
    for (int i = -w[1]; i <= w[1]; i++) dfs(a, sa, b + i, sb + 1, c, sc);
  if (sc % 2 == 0 && (sc / 2 == 0 || sc / 2 == 3) && CisFree(sa, sb, sc))
    for (int i = -w[2]; i <= w[2]; i++) dfs(a, sa, b, sb, c + i, sc + 1);
  if (sa / 2 == 0 && abs(a - b) == 1 && AisFree(sa, sb, sc))
    dfs(a, sa | 2, a, sb, c, sc);
  if (sa / 2 == 0 && abs(a - c) == 1 && AisFree(sa, sb, sc))
    dfs(a, sa | 4, b, sb, a, sc);
  if (sb / 2 == 0 && abs(a - b) == 1 && BisFree(sa, sb, sc))
    dfs(b, sa, b, sb | 2, c, sc);
  if (sb / 2 == 0 && abs(b - c) == 1 && BisFree(sa, sb, sc))
    dfs(a, sa, b, sb | 4, b, sc);
  if (sc / 2 == 0 && abs(a - c) == 1 && CisFree(sa, sb, sc))
    dfs(c, sa, b, sb, c, sc | 2);
  if (sc / 2 == 0 && abs(b - c) == 1 && CisFree(sa, sb, sc))
    dfs(a, sa, c, sb, c, sc | 4);
  if (sa / 2 == 1 && AisFree(sa, sb, sc))
    for (int i = -t[0]; i <= t[0]; i++) dfs(a, sa | 6, b + i, sb, c, sc);
  if (sa / 2 == 2 && AisFree(sa, sb, sc))
    for (int i = -t[0]; i <= t[0]; i++) dfs(a, sa | 6, b, sb, c + i, sc);
  if (sb / 2 == 1 && BisFree(sa, sb, sc))
    for (int i = -t[1]; i <= t[1]; i++) dfs(a + i, sa, b, sb | 6, c, sc);
  if (sb / 2 == 2 && BisFree(sa, sb, sc))
    for (int i = -t[1]; i <= t[1]; i++) dfs(a, sa, b, sb | 6, c + i, sc);
  if (sc / 2 == 1 && CisFree(sa, sb, sc))
    for (int i = -t[2]; i <= t[2]; i++) dfs(a + i, sa, b, sb, c, sc | 6);
  if (sc / 2 == 2 && CisFree(sa, sb, sc))
    for (int i = -t[2]; i <= t[2]; i++) dfs(a, sa, b + i, sb, c, sc | 6);
}
int main() {
  int x, y, z;
  cin >> x >> w[0] >> t[0];
  cin >> y >> w[1] >> t[1];
  cin >> z >> w[2] >> t[2];
  memset(used, 0, sizeof(used));
  x--, y--, z--;
  dfs(x, 0, y, 0, z, 0);
  cout << answer + 1 << endl;
  return 0;
}
