#include <bits/stdc++.h>
int take() {
  int n;
  scanf("%d", &n);
  return n;
}
double ttake() {
  double n;
  scanf("%lf", &n);
  return n;
}
long long takes() {
  long long n;
  scanf("%lld", &n);
  return n;
}
int cas;
using namespace std;
bool approximatelyEqual(float a, float b, float epsilon) {
  return fabs(a - b) <= ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool essentiallyEqual(float a, float b, float epsilon) {
  return fabs(a - b) <= ((fabs(a) > fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool definitelyGreaterThan(float a, float b, float epsilon) {
  return (a - b) > ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
bool definitelyLessThan(float a, float b, float epsilon) {
  return (b - a) > ((fabs(a) < fabs(b) ? fabs(b) : fabs(a)) * epsilon);
}
pair<int, int> dir[9] = {{-1, 0},  {0, -1}, {1, 0},  {0, 1},
                         {-1, -1}, {-1, 1}, {1, -1}, {1, 1}};
int main() {
  int x1 = take(), y1 = take(), x2 = take(), y2 = take();
  int ans = abs(x1 - x2) + abs(y1 - y2);
  ans *= 2;
  ans += 4;
  if (x1 == x2) ans += 2;
  if (y1 == y2) ans += 2;
  printf("%d\n", ans);
  return 0;
}
