#include<bits/stdc++.h>
using namespace std;
typedef long long int lli;
#define all(arr) arr.begin(),arr.end()
#define f first
#define s second
#define debug1(x) cout<<x<<"\n"
#define debug2(x,y) cout<<x<<" "<<y<<"\n"
#define debug3(x,y,z) cout<<x<<" "<<y<<" "<<z<<"\n"
#define nl cout<<"\n";
#define pq priority_queue
#define inf 0x3f3f3f3f
#define test cout<<"abcd\n";
#define pi pair<int,int>
#define pii pair<int,pi>
#define pb push_back
#define MOD 1000000007
template <typename T>
void input(vector<T> &arr,lli n) {
T temp;
for(lli i=0;i<n;i++) cin>>temp, arr.push_back(temp);
}
template <typename T>
void output(vector<T> arr) {
for(auto x:arr) cout<<x<<" ";
cout<<endl;
}
template <typename T>
void input_set(set<T> &arr,lli n) {
T temp;
for(lli i=0;i<n;i++) cin>>temp, arr.insert(temp);
}
lli mul(lli a, lli b) {
return (a%MOD*b%MOD)%MOD;
}
lli power(lli a,lli b) {
lli ans = 1;
while(b > 0) {
if(b&1)
ans = mul(ans, a);
a = mul(a,a);;
b >>= 1;
}
return ans;
}
struct point {
int r, c, moves;
};
bool valid(int r, int c) {
if(r>=1 and r<=8 and c>=1 and c<=8)
return true;
return false;
}
void solve() {
int r1, c1, r2, c2, rook_moves = 0, bishop_moves = 0, king_moves = 0;
cin >> r1 >> c1 >> r2 >> c2;
// For rook
if(abs(r1-r2)!=0)
++rook_moves;
if(abs(c1-c2)!=0)
++rook_moves;
// BFS for bishop
queue<point> q;
q.push({r1, c1, 0});
bool visited[9][9];
memset(visited, false, sizeof(visited));
while(q.size() != 0) {
point top = q.front();
q.pop();
// move the whole diagonal from this point
int r = top.r;
int c = top.c;
int moves = top.moves;
// Checking if we have reached point r2,c2
if(r==r2 and c==c2) {
bishop_moves = moves;
break;
}
// traverse diagonal
for(int i=1; i<=7; i++) {
if(valid(r-i, c-i) and visited[r-i][c-i] == false) {
visited[r-i][c-i] = true;
q.push({r-i, c-i, moves+1});
}
if(valid(r-i, c+i) and visited[r-i][c+i] == false) {
visited[r-i][c+i] = true;
q.push({r-i, c+i, moves+1});
}
if(valid(r+i, c-i) and visited[r+i][c-i] == false) {
visited[r+i][c-i] = true;
q.push({r+i, c-i, moves+1});
}
if(valid(r+i, c+i) and visited[r+i][c+i] == false) {
visited[r+i][c+i] = true;
q.push({r+i, c+i, moves+1});
}
}
}
// For king
r1 = abs(r1-r2), c1 = abs(c1-c2);
king_moves = max(r1, c1);
cout << rook_moves << " " << bishop_moves << " " << king_moves << endl;
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
lli testcases = 1;
while(testcases--) {
solve();
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbGk7CgojZGVmaW5lIGFsbChhcnIpIGFyci5iZWdpbigpLGFyci5lbmQoKQojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAojZGVmaW5lIGRlYnVnMSh4KSBjb3V0PDx4PDwiXG4iCiNkZWZpbmUgZGVidWcyKHgseSkgY291dDw8eDw8IiAiPDx5PDwiXG4iCiNkZWZpbmUgZGVidWczKHgseSx6KSBjb3V0PDx4PDwiICI8PHk8PCIgIjw8ejw8IlxuIgojZGVmaW5lIG5sIGNvdXQ8PCJcbiI7CiNkZWZpbmUgcHEgcHJpb3JpdHlfcXVldWUKI2RlZmluZSBpbmYgMHgzZjNmM2YzZgojZGVmaW5lIHRlc3QgY291dDw8ImFiY2RcbiI7CiNkZWZpbmUgcGkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBpaSBwYWlyPGludCxwaT4KI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwoKdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgaW5wdXQodmVjdG9yPFQ+ICZhcnIsbGxpIG4pIHsKICBUIHRlbXA7CiAgZm9yKGxsaSBpPTA7aTxuO2krKykgY2luPj50ZW1wLCBhcnIucHVzaF9iYWNrKHRlbXApOwp9Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBvdXRwdXQodmVjdG9yPFQ+IGFycikgewogIGZvcihhdXRvIHg6YXJyKSBjb3V0PDx4PDwiICI7CiAgY291dDw8ZW5kbDsKfQoKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgp2b2lkIGlucHV0X3NldChzZXQ8VD4gJmFycixsbGkgbikgewogIFQgdGVtcDsKICBmb3IobGxpIGk9MDtpPG47aSsrKSBjaW4+PnRlbXAsIGFyci5pbnNlcnQodGVtcCk7Cn0KCmxsaSBtdWwobGxpIGEsIGxsaSBiKSB7CiAgcmV0dXJuIChhJU1PRCpiJU1PRCklTU9EOwp9CgpsbGkgcG93ZXIobGxpIGEsbGxpIGIpIHsKICBsbGkgYW5zID0gMTsKICB3aGlsZShiID4gMCkgewogICAgaWYoYiYxKQogICAgICBhbnMgPSBtdWwoYW5zLCBhKTsKICAgIGEgPSBtdWwoYSxhKTs7CiAgICBiID4+PSAxOwogIH0KICByZXR1cm4gYW5zOwp9CgpzdHJ1Y3QgcG9pbnQgewogIGludCByLCBjLCBtb3ZlczsKfTsKCmJvb2wgdmFsaWQoaW50IHIsIGludCBjKSB7CiAgaWYocj49MSBhbmQgcjw9OCBhbmQgYz49MSBhbmQgYzw9OCkKICAgIHJldHVybiB0cnVlOwogIHJldHVybiBmYWxzZTsKfQoKdm9pZCBzb2x2ZSgpIHsKICBpbnQgcjEsIGMxLCByMiwgYzIsIHJvb2tfbW92ZXMgPSAwLCBiaXNob3BfbW92ZXMgPSAwLCBraW5nX21vdmVzID0gMDsKICBjaW4gPj4gcjEgPj4gYzEgPj4gcjIgPj4gYzI7CiAgLy8gRm9yIHJvb2sKICBpZihhYnMocjEtcjIpIT0wKQogICAgKytyb29rX21vdmVzOwogIAogIGlmKGFicyhjMS1jMikhPTApCiAgICArK3Jvb2tfbW92ZXM7CiAgCiAgLy8gQkZTIGZvciBiaXNob3AgCiAgcXVldWU8cG9pbnQ+IHE7CiAgcS5wdXNoKHtyMSwgYzEsIDB9KTsKICBib29sIHZpc2l0ZWRbOV1bOV07CiAgbWVtc2V0KHZpc2l0ZWQsIGZhbHNlLCBzaXplb2YodmlzaXRlZCkpOwogIHdoaWxlKHEuc2l6ZSgpICE9IDApIHsKICAgIHBvaW50IHRvcCA9IHEuZnJvbnQoKTsKICAgIHEucG9wKCk7CiAgICAvLyBtb3ZlIHRoZSB3aG9sZSBkaWFnb25hbCBmcm9tIHRoaXMgcG9pbnQKICAgIGludCByID0gdG9wLnI7CiAgICBpbnQgYyA9IHRvcC5jOwogICAgaW50IG1vdmVzID0gdG9wLm1vdmVzOwogICAgLy8gQ2hlY2tpbmcgaWYgd2UgaGF2ZSByZWFjaGVkIHBvaW50IHIyLGMyCiAgICBpZihyPT1yMiBhbmQgYz09YzIpIHsKICAgICAgYmlzaG9wX21vdmVzID0gbW92ZXM7CiAgICAgIGJyZWFrOwogICAgfQogICAgLy8gdHJhdmVyc2UgZGlhZ29uYWwKICAgIGZvcihpbnQgaT0xOyBpPD03OyBpKyspIHsKICAgICAgaWYodmFsaWQoci1pLCBjLWkpIGFuZCB2aXNpdGVkW3ItaV1bYy1pXSA9PSBmYWxzZSkgewogICAgICAgIHZpc2l0ZWRbci1pXVtjLWldID0gdHJ1ZTsKICAgICAgICBxLnB1c2goe3ItaSwgYy1pLCBtb3ZlcysxfSk7CiAgICAgIH0KCiAgICAgIGlmKHZhbGlkKHItaSwgYytpKSBhbmQgdmlzaXRlZFtyLWldW2MraV0gPT0gZmFsc2UpIHsKICAgICAgICB2aXNpdGVkW3ItaV1bYytpXSA9IHRydWU7CiAgICAgICAgcS5wdXNoKHtyLWksIGMraSwgbW92ZXMrMX0pOwogICAgICB9CgogICAgICAgaWYodmFsaWQocitpLCBjLWkpIGFuZCB2aXNpdGVkW3IraV1bYy1pXSA9PSBmYWxzZSkgewogICAgICAgIHZpc2l0ZWRbcitpXVtjLWldID0gdHJ1ZTsKICAgICAgICBxLnB1c2goe3IraSwgYy1pLCBtb3ZlcysxfSk7CiAgICAgIH0KCiAgICAgIGlmKHZhbGlkKHIraSwgYytpKSBhbmQgdmlzaXRlZFtyK2ldW2MraV0gPT0gZmFsc2UpIHsKICAgICAgICB2aXNpdGVkW3IraV1bYytpXSA9IHRydWU7CiAgICAgICAgcS5wdXNoKHtyK2ksIGMraSwgbW92ZXMrMX0pOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBGb3Iga2luZwogIHIxID0gYWJzKHIxLXIyKSwgYzEgPSBhYnMoYzEtYzIpOwogIGtpbmdfbW92ZXMgPSBtYXgocjEsIGMxKTsKCiAgY291dCA8PCByb29rX21vdmVzIDw8ICIgIiA8PCBiaXNob3BfbW92ZXMgPDwgIiAiIDw8IGtpbmdfbW92ZXMgPDwgZW5kbDsKfQoKaW50IG1haW4oKSB7CiAgCiAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgY2luLnRpZShOVUxMKTsKCiAgbGxpIHRlc3RjYXNlcyA9IDE7CiAgd2hpbGUodGVzdGNhc2VzLS0pIHsKICAgIHNvbHZlKCk7CiAgfQp9Cgo=