package main import ( "bufio" "fmt" "os" ) var dx = []int{0,1,0,-1} var dy = []int{1,0,-1,0} func main() { in := bufio.NewReader(os.Stdin) var n,m int var sx,sy,ex,ey int fmt.Fscan(in, &n,&m,&sx,&sy,&ex,&ey) dist := make([][]int,n+1) for i := range dist { dist[i] = make([]int, m+1) for j := range dist[i] { dist[i][j] = -1 } } var data []string for i:=0;i<n;i++{ var tmp string fmt.Fscan(in, &tmp) data = append(data, tmp) } q := [][]int{{sx,sy}} dist[sx][sy] = 0 for len(q) != 0 { cx,cy := q[0][0],q[0][1] q = q[1:] if data[cx-1][cy-1] == '*' { continue } for k := 0;k<4;k++{ nx := cx + dx[k] ny := cy + dy[k] if nx >= 1 && nx <= n && ny >= 1 && ny <= m && dist[nx][ny] == -1 && data[nx-1][ny-1] != '*'{ dist[nx][ny] = dist[cx][cy] + 1 q = append(q,[]int{nx,ny}) } } } if dist[ex][ey] == -1 { fmt.Println(-1) } else { fmt.Println(dist[ex][ey]) } }