Một mê cung có hàng và cột. Ô là ô trống nếu ký tự tương ứng là ., và là tường nếu ký tự đó là #.
Bạn bắt đầu ở một ô trống và cần tới ô trống . Có hai kiểu di chuyển:
- Đi bộ: sang một ô trống chung cạnh với ô hiện tại. Thao tác này không dùng phép thuật.
- Dịch chuyển: tới một ô trống thỏa và . Thao tác này dùng đúng một lần phép thuật.
Khi dịch chuyển, các ô nằm giữa điểm đầu và điểm cuối không ảnh hưởng; chỉ ô đích cần là ô trống. Không thao tác nào được đưa bạn ra ngoài mê cung.
Hãy tìm số lần dùng phép thuật ít nhất để tới đích. Nếu không thể tới, in .
Input
- Dòng đầu chứa hai số nguyên và .
- Dòng thứ hai chứa - tọa độ xuất phát.
- Dòng thứ ba chứa - tọa độ đích.
- Mỗi trong dòng tiếp theo chứa một xâu độ dài mô tả một hàng của mê cung.
Output
- In số lần dịch chuyển ít nhất, hoặc nếu không tồn tại hành trình.
Constraints
- .
- .
- .
- Mỗi ô là
.hoặc#. - Ô xuất phát và ô đích đều là ô trống và khác nhau.
Scoring
- Subtask ( số điểm): .
- Subtask ( số điểm): Không có giới hạn bổ sung.
Example
Test 1
Input
5 5 1 1 5 5 ..#.. ..#.. ##### ..#.. ..#..
Output
1
Giải thích: Có thể đi bộ tới , rồi dịch chuyển thẳng tới vì hai tọa độ chỉ lệch . Sau đó đi bộ tới đích, nên chỉ cần một lần phép thuật.
Test 2
Input
4 6 1 2 4 5 ...... .####. ...... ......
Output
0
Giải thích: Đi dọc hàng đầu tới cột , xuống qua ô trống ở cột này rồi đi tới đích hoàn toàn bằng các bước chung cạnh, nên không cần dùng phép thuật.