#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std;
const int N=105,M=20;
int xx,yy,mk[N][N],dp[N][N],stx,sty,res,cnt;
int xy[12][2]={{-2,-1},{-2,-2},{-1,-2},{1,-2},{2,-2},{2,-1},{2,1},{2,2},{1,2},{-1,2},{-2,2},{-2,1}};
void dfs(int x,int y,int cnt)
{
dp[x][y]=cnt;
for(int i=0;i<12;i++)
{
xx=x+xy[i][0];
yy=y+xy[i][1];
if(xx>=1 && xx<=M && yy>=1 && yy<=M && !mk[xx][yy])
{
if(!dp[xx][yy] || dp[xx][yy]>cnt+1)
{
mk[xx][yy]=1;
dfs(xx,yy,cnt+1);
mk[xx][yy]=0;
}
}
}
}
int main()
{
int idx=2;
while(idx--)
{
for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) mk[i][j]=0;
for(int i=1;i<=N;i++) for(int j=1;j<=N;j++) dp[i][j]=0;
res=0x3f3f3f3f3f;
cnt=0;
cin>>stx>>sty;
mk[stx][sty]=1;
dfs(1,1,0);
cout<<dp[1][1]<<endl;
}
return 0;
}