#include <bits/stdc++.h>
using namespace std;
template <typename T>
bool isPrime(T n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  for (long long int i = 5; i * i <= n; i = i + 6)
    if (n % i == 0 || n % (i + 2) == 0) return false;
  return true;
}
template <typename T, typename T2>
T2 power(T x, T y) {
  if (y == 0) return 1;
  T2 res = power(x, y / 2);
  if (y % 2) return res * res * x;
  return res * res;
}
vector<long long int> adj[100001];
int main() {
  {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
  };
  long long int r1, c1, r2, c2;
  cin >> r1 >> c1 >> r2 >> c2;
  long long int ans1, ans2, ans3;
  if ((r1 == r2) || (c1 == c2))
    ans1 = 1;
  else
    ans1 = 2;
  if (((r1 + c1) % 2) == ((r2 + c2) % 2)) {
    if (abs(r1 - r2) == abs(c1 - c2))
      ans2 = 1;
    else
      ans2 = 2;
  } else
    ans2 = 0;
  long long int d1 = abs(r1 - r2);
  long long int d2 = abs(c1 - c2);
  ans3 = max(d1, d2);
  cout << ans1 << " " << ans2 << " " << ans3 << endl;
  return 0;
}
