你很快就要卖掉你的房子,但首先,你需要弄清楚地板的面积。这听起来可能很简单,但你有一个闲置的储藏室,你弄丢了它的钥匙,而且你完全不知道这个储藏室有多大。储藏室里唯一的物品是一个扫地机器人。如果你启动扫地机器人并观察它最终停在哪里,也许你能弄清楚储藏室有多大?
储藏室由一个 $N \times M$ 的网格组成,其中 $N$ 和 $M$ 是未知的正整数。行从上到下依次编号为 $0$ 到 $N - 1$,列从左到右依次编号为 $0$ 到 $M - 1$。机器人有一组指令 $s$。这些指令由一个包含字符 <、>、^ 和 v 的字符串表示。当机器人启动时,它会读取 these 指令,并针对每条指令向相应的方向移动一步。如果机器人试图移动到网格之外,它会撞到墙壁,什么也不会发生。机器人从左上角开始,即第 $0$ 行第 $0$ 列。
给你字符串 $s$ 以及机器人执行完指令后最终所在的行和列。计算与该信息相符的 $N \cdot M$ 的最小可能值。
输入格式
第一行包含一个整数 $K$ ($1 \le K \le 3 \cdot 10^5$),表示字符串 $s$ 的长度。
第二行包含字符串 $s$。
第三行包含两个整数 $r$ 和 $c$ ($0 \le r, c < 3 \cdot 10^5$),其中 $r$ 是机器人最终所在的行, $c$ 是机器人最终所在的列。
输出格式
输出一个整数,即 $N \cdot M$ 的最小可能值。如果没有符合测试数据中信息的 $N$ 和 $M$ 的选择,则输出 $-1$。
子任务
你的解法将在多个子任务上进行测试。要获得某个子任务的分数,必须通过该子任务中的所有测试用例。
| 子任务 | 分值 | 数据范围 |
|---|---|---|
| 1 | 15 | 机器人只向下和向右移动。 |
| 2 | 30 | $K \le 100$ |
| 3 | 20 | $K \le 5000$ |
| 4 | 35 | 无附加限制。 |
样例
输入格式 1
14 >v<v>v>^^^>>v< 1 2
输出格式 1
8
说明
图 1:该图显示了样例 1 中最小的可能网格。机器人沿着黑色曲线移动。深色方块是机器人的最终位置。
输入格式 2
1 > 100000 100000
输出格式 2
-1
输入格式 3
4 >><< 0 0
输出格式 3
1