震惊!最好的走位竟然是...
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

SugarT(沙梨小宠儿)正在打穿越火线,用其迷幻的走位赢得胜利。
某次对局中,A 包点的他竟被来自 B 包点队友的一颗闪光弹径直命中!情急之下 SugarT 对着方向键一顿猛戳,最终化险为夷!
SugarT 发现自己的走位序列中,部分操作指令由于按的太轻导致人物根本没有收到,并且进行完相应的走位序列之后,SugarT 居然停留在了初始位置!

现将游戏的地图看作无穷大的二维坐标系,且地图中含有 $m$ 个障碍物 (若人物下一步移动位置有障碍物则会取消本次移动)

给定一串长度为 $n$ 的 SugarT 走位序列以及地图的信息,请你告诉 SugarT 有多少种可能使得他最终还停留在初始位置。

答案对 $998\,244\,353$ 取模。

输入描述:

输入的第一行包含四个整数 n,m,X,Y (1 \le n \le 100,1 \le m \le 10 ^ 4,-10 ^ 8 \le X,Y \le 10 ^ 8) 代表走位序列的长度、地图的障碍数量以及初始位置的坐标。

输入的第二行包含一个长度为 n 的字符串 s (s_i \in \{\texttt{U}, \texttt{D},\texttt{L}, \texttt{R}\}) 代表 SugarT 的走位序列。

(其中 L 代表向左走,即横坐标 -1,R 代表向右走,即横坐标 +1,U 代表向上走,即纵坐标 +1,D 代表向下走,即纵坐标 -1

接下来 m 行,每行包含两个整数 x,y (-10 ^ 8 \le x, y \le 10 ^ 8),代表障碍物的坐标。

数据保证初始位置坐标无障碍物。

输出描述:

输出一个整数表示 SugarT 最终还停留在初始位置的走位序列的数量,答案对 998\,244\,353 取模。
示例1

输入

复制
4 2 0 0
LURD
-1 0
0 1

输出

复制
4

备注:

用 \texttt{X} 代表当前按键没有被接收
可能的走位序列为:\texttt{XXXX,LXXX,XUXX,LUXX}