#include <bits/stdc++.h>
void update(int board[8][8], int x, int y, int xu, int yu) {
  while (x >= 0 && y >= 0 && x < 8 && y < 8) {
    ++board[x][y];
    x += xu;
    y += yu;
  }
}
void move(int board[8][8], int x, int y) {
  ++board[x][y];
  update(board, x + 1, y + 1, 1, 1);
  update(board, x + 1, y - 1, 1, -1);
  update(board, x - 1, y + 1, -1, 1);
  update(board, x - 1, y - 1, -1, -1);
}
int main() {
  int r0, c0, r1, c1;
  std::cin >> r0 >> c0 >> r1 >> c1;
  --r0, --c0, --r1, --c1;
  std::cout << (r0 != r1) + (c0 != c1) << " ";
  int board[8][8];
  for (int j = 0; j < 8; ++j) {
    for (int k = 0; k < 8; ++k) {
      board[j][k] = 0;
    }
  }
  move(board, r0, c0);
  move(board, r1, c1);
  int bishop = 0;
  for (int j = 0; j < 8; ++j) {
    for (int k = 0; k < 8; ++k) {
      if (board[j][k] == 2) {
        bishop = 1;
        break;
      }
    }
    if (bishop == 1) {
      break;
    }
  }
  if (board[r0][c0] == 2) {
    std::cout << "1 ";
  } else if (bishop) {
    std::cout << "2 ";
  } else {
    std::cout << "0 ";
  }
  int king = 0;
  while (r0 != r1 || c0 != c1) {
    if (r0 < r1) {
      ++r0;
    }
    if (r1 < r0) {
      ++r1;
    }
    if (c1 < c0) {
      ++c1;
    }
    if (c0 < c1) {
      ++c0;
    }
    ++king;
  }
  std::cout << king;
}
