#include<bits/stdc++.h> using namespace std; int fx[8]={-2,-2,-1,-1,2,2,1,1}; int fy[8]={-1,2,-2,2,1,-1,2,-2}; int n,m,dx,dy,kx,ky; char a[151][151]; int b[151][151]; void dfs(int x,int y,int k){ b[x][y]=k; // cout<<x<<" "<<y<<" "<<k<<endl; for(int i=0;i<=7;i++){ int tx=x+fx[i]; int ty=y+fy[i]; if(tx>=1&&tx<=m&&ty>=1&&ty<=n&&a[tx][ty]!='*'&&k+1<b[tx][ty]){ dfs(tx,ty,k+1); } } } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ for(int j=1;j<=n;j++){ cin>>a[i][j]; b[i][j]=INT_MAX; if(a[i][j]=='K'){ dx=i; dy=j; } if(a[i][j]=='H'){ kx=i; ky=j; } } } // cout<<dx<<dy; dfs(dx,dy,1); // for(int i=1;i<=n;i++){ // for(int j=1;j<=m;j++){ // cout<<setw(20)<<b[i][j]; // } // cout<<endl; // } cout<<b[kx][ky]; return 0; } // 1 2 3 4 5 //1 0 1 0 1 0 //2 1 0 0 0 1 //3 0 0 1 0 0 //4 1 0 0 0 1 //5 0 1 0 1 0 //x:-2 -2 -1 -1 2 2 1 1 //y:-1 2 -2 2 1 -1 2 -2 /************************************************************** Problem: 1441 User: chenjingqi Language: C++ Result: Wrong Answer ****************************************************************/