#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int dp[2][10][10][10][10]; P nx[10][10][10][10]; const int INF=100; int main() { for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ for(int k=0; k<10; k++){ for(int l=0; l<10; l++){ if(i==k && j==l){ dp[0][i][j][k][l]=dp[1][i][j][k][l]=0; }else{ dp[0][i][j][k][l]=dp[1][i][j][k][l]=INF; } } } } } int dx[4]={1, -1, 0, 0}, dy[4]={0, 0, 1, -1}; for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ for(int t=0; t<4; t++){ int a1=i+dx[t], b1=j+dy[t]; if(a1<0 || b1<0) continue; if(a1==10){ if(b1<9) continue; else a1=9; }else if(b1==10){ if(a1<7) continue; else a1=9, b1=9; } if(a1==i && b1==j) continue; dp[0][a1][b1][i][j]=0; nx[a1][b1][i][j]=P(i, j); } } } for(int d=1; d<37; d++){ for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ for(int k=0; k<10; k++){ for(int l=0; l<10; l++){ if(dp[1][i][j][k][l]==INF){ bool dame=0; for(int t=0; t<4; t++){ int c1=k+dx[t], d1=l+dy[t]; if(c1<0 || d1<0) continue; if(c1==10){ if(d1<9) continue; else c1=9; }else if(d1==10){ if(c1<7) continue; else c1=9, d1=9; } if(c1==k && d1==l) continue; if(dp[0][i][j][c1][d1]>=d){ dame=1; } } if(!dame){ dp[1][i][j][k][l]=d; } } } } } } for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ for(int k=0; k<10; k++){ for(int l=0; l<10; l++){ if(dp[0][i][j][k][l]==INF){ for(int t=0; t<4; t++){ int c1=i+dx[t], d1=j+dy[t]; if(c1<0 || d1<0) continue; if(c1==10){ if(d1<9) continue; else c1=9; }else if(d1==10){ if(c1<7) continue; else c1=9, d1=9; } if(c1==i && d1==j) continue; if(dp[1][c1][d1][k][l]<=d){ dp[0][i][j][k][l]=d; nx[i][j][k][l]=P(c1, d1); break; } } } } } } } } int x1, x2; cin>>x1>>x2; auto myon=[&](int x){ int a=0, b=0; while(x%2==0){ a++; x/=2; } while(x%5==0){ b++; x/=5; } return P(a, b); }; auto nuo=[&](int a, int b){ int x=1; for(int i=0; i>x4; if(x3==x4) return 0; x1=x3, x2=x4; } /* int mx=0; for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ for(int k=0; k<10; k++){ for(int l=0; l<10; l++){ mx=max(mx, dp[0][i][j][k][l]); } } } } cout<