停止問題

题意翻译

【题目描述】 Defunge 程序由一个 $R$ 行 $C$ 列的字符数组组成。下面是一个 Defunge 程序的例子: ```plain 6>--v. .^--_@ ``` Defunge 程序从程序的左上角(即第一行第一列)开始执行。**它的执行方向一开始为"右"**,每次朝着执行方向走一步,**如果走出界了,要跳到另一边**。每走到一个格子上,就要执行这个格子上的命令。 Defunge 程序还有一个存储器,这个存储器只能存储 $[0,15]$ 的一个整数,**存储器一开始存储** $\bold{0}$。 在 Defunge 程序中,有且只有 $11+10=21$ 种命令,下面是它们各自的含义: - `<`:把执行方向设置为"左"。 - `>`:把执行方向设置为"右"。 - `^`:把执行方向设置为"上"。 - `v`:把执行方向设置为"下"。 - `_`:如果存储器存储的数字是 $0$,就把执行方向设置为"右",否则设置为"左"。 - `|`:如果存储器存储的数字是 $0$,就把执行方向设置为"下",否则设置为"上"。 - `?`:把执行方向设置为"上下左右"中的**任意**一个(类似于 dfs 把四个方向全搜一遍)。 - `.`:什么也不做。 - `@`:停止程序。 - `0`-`9`:把存储器设置为这个字符表示的数值。 - `+`:让存储器的数值加 $1$。注意当存储器的数值为 $15$ 时要把它设为 $0$。 - `-`:让存储器的数值减 $1$。注意当存储器的数值为 $0$ 时要把它设为 $15$。 现在,给你一个 Defunge 程序,请判断这个程序是否能停止(即执行到命令`@`)。如果能,输出`YES`,否则输出`NO`。 【输入格式】 第一行两个正整数 $R,C$,表示这个 Defunge 程序有 $R$ 行 $C$ 列。 接下来 $R$ 行,每行有 $C$ 个字符,描述这个 Defunge 程序。 【输出格式】 一行字符串`YES`或`NO`,表示这个程序是否能停止。 【样例】 样例输入 $1$: ```plain 2 6 6>--v. .^--_@ ``` 样例输出 $1$: ```plain YES ``` 样例输入 $2$: ```plain 2 6 5>--v. .^--_@ ``` 样例输出 $2$: ```plain NO ``` 样例输入 $3$: ```plain 2 6 .>--v. .^--?@ ``` 样例输出 $3$: ```plain YES ``` 【数据范围】 $1\leq R,C\leq 20$,保证程序里只有上文提到的 $21$ 种命令。

题目描述

[problemUrl]: https://atcoder.jp/contests/utpc2011/tasks/utpc2011_4

输入输出格式

输入格式


输出格式


输入输出样例

暂无测试点