#include <bits/stdc++.h>
const int dir[4][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}};
const double PI = acos(-1.0);
template <class T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <class T>
T lcm(T a, T b) {
  return a / gcd(a, b) * b;
}
template <class T>
inline T Min(T a, T b) {
  return a < b ? a : b;
}
template <class T>
inline T Max(T a, T b) {
  return a > b ? a : b;
}
using namespace std;
int s1, s2, s3, s4;
void work() {
  int ans1 = 0, ans2 = 0, ans3 = 0;
  if (s1 == s3 || s2 == s4)
    ans1 = 1;
  else
    ans1 = 2;
  if (s1 + s2 == s3 + s4 || s1 - s2 == s3 - s4)
    ans2 = 1;
  else if ((s1 + s2) % 2 == (s3 + s4) % 2)
    ans2 = 2;
  ans3 = Max(abs(s3 - s1), abs(s4 - s2));
  printf("%d %d %d\n", ans1, ans2, ans3);
}
int main() {
  while (scanf("%d%d%d%d", &s1, &s2, &s3, &s4) != EOF) {
    if (s1 == s3 && s2 == s4) {
      printf("0 0 0\n");
      continue;
    }
    work();
  }
  return 0;
}
