题目描述
在noip2009中,yuan0818神牛经过3个小时的激烈拼杀,终于进入了省队。回到保定后,我们决定为他庆祝一下。经过我们的一翻唇枪舌战,终于说服yuan0818带他的GF来了。 保定二中高一的oier们老早就得到了这个消息,他们布下了天罗地网,准备" 抓" 到yuan0818让他请客,当然吝啬的yuan0818怎么会自己请客呢,他准备在不被高一的oier发现的情况下找到GF并带她溜出学校.这样,一场" 英雄救美" 的好戏就此展开了. 学校可以看成是一个N*N的矩阵,每个单位格子中都有一个数字X或一个字符 如果这个格子中是数字X那么 X< -1 表示这个地方是墙, X=-1 表示这个地方有一个高一的oier,他可以发现他前后左右一个单位长度的目标 X> 0,X< =M 表示这个地方有一个坚硬度为X的门 X> M 表示这个地方有一把可以砸烂坚硬度小于等于X-M的门的锤子; 如果这个格子中不是数字而是一个G,就表示yuan0818的GF在这个位置。为了简化题目,我们规定yuan0818的GF在(n,n),且只有一个GF 现在yuan0818在(1,1)位置,那么他怎样才能用最少的步数才能找到他的GF呢? 当然yuan0818不能大摇大摆地进去,因为他不能被高一的oier发现.yuan0818最多可以同时拿着N*N把锤子,不过如果他的锤子的等级与他要砸烂的门的等级的绝对值> 1,那他就会被警觉的高一的oier发现,这样yuan0818就必须得请客了~ ~(当然,我们的yuan0818神牛不会让此事发生的,如果一定要这样的话,他宁可不去找他的GF);
输入
第一行两个数 N , M 如题所述接下来是一个 N*N 的矩阵,描述学校的情况
输出
一个数,最少的步数.如果yuan0818不得不请客或他怎么都到不了他的GF那里,那么就输出-1;
样例输入输出
提示
1.十六班的巨菜cannot为膜拜十八班的神牛yuan0818编写的题目 2.以上故事纯属虚构,但传承至今,是一个非常有名的神话故事。 3.数据范围: 对于20%的数据不会有高一的oier出现且只有一种斧子和一种门; 对于30%的数据 , 有 N < = 10 M < = 4; 对于50%的数据 , 有 N < = 20 M < = 10; 对于100%的数据, 有 N < = 40 M < = 14 有K1种斧子,K2种门,K3个高一的oier,所有斧子的标号不会超过31,且在各组数据中不会超过M*2