U472059 跳舞的线-捡钻

题目背景

### 小杨同学正在玩“跳舞的线”,遇到了一个岔路极多的关卡,每条路上都有钻石,小杨同学不知道最多能捡多少钻石,想让智慧的你帮忙求出钻石个数

题目描述

### 给定一个跳舞的线的地图(有墙、路、虚空、钻石),问路上最大能获得多少钻石,并求出获得最大钻石的路径。 #### 线的移动规则: 1.线只能往下走或往右走 2.线遇到墙会撞上墙(不能跨过墙) 3.线可以跨越一格虚空(忽略高低问题) 4.线可以在路上拐弯,但不能在虚空上拐弯

输入格式

第1行输入两个数$N,M$,表示地图的长度和宽度。 第2行到$N+1$行,每行$M$个数,用空格隔开。 - 墙为```2``` - 路为```1``` - 虚空为```0``` - 钻石为```3```

输出格式

输出一个数输出最大捡钻个数,如果无法到达终点,输出```-1```。

说明/提示

### 本题为封装测试点,必须全对 |封装测试点|$N,M$|特殊性质| | :----------: | :----------: | :----------: | |子任务1|$\le 10$|样例| |子任务2|$\le 50$| |子任务3|$\le 100$|特殊性质1| |子任务4|$\le 100$| |子任务5|$\le 1000$| |子任务6|$\le 1000$| |子任务7(hack)| 特殊性质1:没有虚空