#include <bits/stdc++.h>
int main() {
  std::array<int, 4> c[2];
  int r(0);
  double d;
  for (int i(0); i < 2; ++i)
    std::scanf("%d%d%d%d", &c[i][0], &c[i][1], &c[i][2], &c[i][3]);
  d = std::sqrt((c[0][0] - c[1][0]) * (c[0][0] - c[1][0]) +
                (c[0][1] - c[1][1]) * (c[0][1] - c[1][1]));
  if (c[0][3] < c[1][3]) std::swap(c[0], c[1]);
  if (d <= c[0][3]) {
    if (d + c[1][3] <= c[0][2]) {
      r = 4;
    } else if (d + c[1][2] <= c[0][2]) {
      r = 1;
      r += d + c[1][3] <= c[0][3];
    } else {
      if (d + c[1][3] <= c[0][3]) {
        if (c[0][2] + c[1][3] <= d)
          r = 2;
        else if (d < c[1][2] && c[0][2] <= c[1][2] - d)
          r = 2;
        else
          r = 1;
      } else {
        r += c[0][2] + c[1][3] <= d;
        r += d < c[1][2] && c[0][2] <= c[1][2] - d;
        r += c[1][2] + c[0][3] <= d;
        r += d < c[0][2] && c[1][2] <= c[0][2] - d;
      }
    }
  } else {
    if (c[0][3] + c[1][3] <= d) {
      r = 4;
    } else {
      r += c[0][2] + c[1][3] <= d;
      r += c[0][3] + c[1][2] <= d;
    }
  }
  std::printf("%d\n", r);
  return 0;
}
