#2516. 骑士

骑士

题目描述

贝茜遇到了一件很麻烦的事:她无意中闯入了森林里的一座城堡,如果她想回家,就必须穿过这片由骑士们守护着的森林.为了能安全地离开,贝茜不得不按照骑士们的要求,在森林寻找一种特殊的灌木并带一棵给他们.

当然,贝茜想早点离开这可怕的森林,于是她必须眷完成骑士们给的任务,贝茜随身带着这片森林的地图,地图上的森林被放入了直角坐标系,并按x,y\red{x,y}轴上的单位长度划分成了W×\red{W\times }H(1\red{H(1≤}W,H\red{W,H≤}1000)\red{1000)}块,贝茜在地图上查出了她自己以及骑士们所在的位置,当然地图上也标注了她所需要的灌木生长的区域.

某些区域是不能通过的(比如说沼泽地,悬崖,以及食人兔的聚居地).在没有找到灌木之前,贝茜不能通过骑士们所在的那个区域,为了确保她自己不会迷路,贝茜只向正北、 正东、正南、正西四个方向移动(注意,她不会走对角线).她要走整整一天,才能从某块区域走到与它相邻的那块区域.

输入数据保证贝茜一定能完成骑士的任务.贝茜希望你能帮她计算一下,她最少需要多少天才可脱离这可怕的地方?

输入格式

1\red{1}行输入2\red{2}个用空格隔开的整数,即题目中提到的W\red{W}H.\red{H.}

接下来输入贝茜持有的地图,每一行用若干个数字代表地图上对应行的地形.

1\red{1}行描述了地图最北的那一排土地;最后一行描述的则是最南面的.相邻的数字所对应的区域是相邻的.

如果地图的宽小于或等于40\red{40,}那每一行数字恰好对应了地图上的一排土地.

如果地图的宽大于40\red{40,}那每行只会给出40\red{40}个数字,并且保证除了最后一行的每一行都包含恰好40\red{40}个数字.没有哪一行描述的区域分布在两个不同的行里 .

地图上的数字所对应的地形:

0\red{0:}贝茜可以通过的空地

1\red{1:}由于各种原因而不可通行的区域

2\red{2:}贝茜现在所在的位置

3\red{3:}骑士们的位置

4\red{4:}长着贝茜需要的灌木的土地

输出格式

输出一个正整数D\red{D,}即贝茜最少要花多少天才能完成骑士们给的任务.

样例

输入样例

8 4
4 1 0 0 0 0 1 0
0 0 0 1 0 1 0 0
0 2 1 1 3 0 4 0
0 0 0 4 1 1 1 0

输出样例

11

提示

输入详细信息:

宽度=8\red{=8,}高度=4\red{=4}。贝西从第三排开始,只有几格远来自骑士队。

这片森林的长为8\red{8,}宽为4\red{4}.贝茜的起始位置在第3\red{3}行,离骑士们不远.

贝茜可以按这样的路线完成骑士的任务: 北,西,北,南,东,东,北,东,东,南,南.她在森林的西北角得到一株她需要的灌木,然后绕过障碍把它交给在东南方的骑士 .