题目描述马是象棋中的棋子,走法是每步直一格再斜一格,即先横着或直着走一格再斜走一个对角线,俗称"马走日"字。给定 m 行 n 列的棋盘,棋盘上只有象棋中的棋子"马",并且每个棋子有等级之分。等级为 k 的马可以跳 1 到 k 步(走的方式与象棋中"马"的规则一样,不可以超出棋盘)。问是否能将所有马跳到同一位置,如果存在,输出最少需要的总步数(每匹马的步数相加),不存在则输出 -1。允许不同的马在跳的过程中跳到同一位置。坐标为 (x, y) 的马跳一次可以跳到 (x+1,y+2)、(x+1,y-2)、(x+2,y+1)、(x+2,y-1)、(x-1,y+2)、(x-1,y-2)、(x-2,y+1)、(x-2,y-1),但不可以超出棋盘范围。输入描述:第一行输入 m 和 n,代表 m 行 n 列的网格棋盘(1 = m, n = 25)。接下来 m 行,每行 n 个字符,.代表无棋子,数字 k(1 = k = 9)代表等级为 k 的马。输出描述:最少需要的总步数,不存在输出 -1。示例 1输入:3 2 .. 2. ..输出:0说明:只有一匹等级 2 的马,它本身就在目标位置,总步数 0。讲个故事:马儿大集合棋盘上散落着几匹马,等级不一。等级高的马一次能蹦好几步(最多蹦自己等级数那么多个"日"字),等级低的只能蹦一两步。现在要让所