Bessie 在 Camelot 遇到麻烦:必须穿过 Knights of Ni 把守的森林。为安全通过,骑士要求她带来一株灌木。时间紧,她必须尽快找到并带给他们。
森林地图划为普通正方形网格,轴平行 $X$、$Y$ 轴。大小 $W\times H$ ($1 \le W \le 1000$; $1 \le H \le 1000$)。
地图标出起点、骑士所在唯一格、所有灌木及可通行区域;沼泽、悬崖、杀人兔使某些格不可通行。没有灌木时不能经过骑士格。
为正确遵图,她只走北、东、南、西四方向(不能斜走),到相邻格需一天。
保证能取得灌木并交给骑士,求最快方式。
输入格式
第 $1$ 行:空格分隔整数 $W$、$H$。
第 $2..?$ 行:逐行地图,第一行最西北、最后最东南,各行整数从西往东列出。每个新地图行从新输入行开始;每输入行最多 40 个空格分隔整数。若 $W \le 40$,一输入行完整描述一地图行;若 $W > 40$,一地图行用多输入行,除最后一行可能不足外每行 40 个数。单一输入行绝不含两个地图行的元素。
地图整数来自:
- 0:可通行格。
- 1:不可通行格。
- 2:Bessie 起点。
- 3:Knights of Ni 位置。
- 4:灌木位置。
输出格式
第 $1$ 行:$D$,取得灌木并带给骑士所需最少天数。
样例
输入格式 1
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
输出格式 1
11
说明
宽 $8$,高 $4$。Bessie 从第三行出发,距骑士仅几格。
她可按 N、W、N、S、E、E、N、E、E、S、S 移动;在西北角取灌木,向东绕障碍,再向南到骑士。