#include <bits/stdc++.h>
using namespace std;
int rook(int x1, int y1, int x2, int y2) {
  int m = 0;
  if (x1 != x2) {
    m++;
  }
  if (y1 != y2) {
    m++;
  }
  return m;
}
int bishop(int x1, int y1, int x2, int y2) {
  int m = 0;
  if ((x1 + y1) % 2 == (x2 + y2) % 2) {
    if ((x1 + y1 == x2 + y2) || (x1 - y1 == x2 - y2)) {
      m = 1;
    } else
      m = 2;
  }
  return m;
}
int king(int x1, int y1, int x2, int y2) {
  int m = 0;
  while (x1 != x2 || y1 != y2) {
    if (x1 > x2 && y1 > y2) {
      x1--;
      y1--;
      m++;
    }
    if (x1 > x2 && y1 < y2) {
      x1--;
      y1++;
      m++;
    }
    if (x1 < x2 && y1 < y2) {
      x1++;
      y1++;
      m++;
    }
    if (x1 < x2 && y1 > y2) {
      x1++;
      y1--;
      m++;
    }
    if (x1 < x2 && y1 == y2) {
      x1++;
      m++;
    }
    if (x1 > x2 && y1 == y2) {
      x1--;
      m++;
    }
    if (y1 > y2 && x1 == x2) {
      y1--;
      m++;
    }
    if (y1 < y2 && x1 == x2) {
      y1++;
      m++;
    }
  }
  return m;
}
int main() {
  int r1, c1, r2, c2;
  cin >> r1 >> c1 >> r2 >> c2;
  cout << rook(r1, c1, r2, c2) << " " << bishop(r1, c1, r2, c2) << " "
       << king(r1, c1, r2, c2);
}
