#YC350. 海上飞机迫降逃生

海上飞机迫降逃生

问题描述

有一个 HHWW 列的网格。

网格中的每个单元格都是陆地或海洋,用长度为 WW 的字符串 S1,S2,,SHS_1, S_2, \ldots, S_H 表示。设 (i,j)(i, j) 表示网格中从顶部开始第 ii 行、从左侧开始第 jj 列的单元格,如果 SiS_i 的第 jj 个字符为 . ,则 (i,j)(i, j) 是陆地,如果字符为 # ,则 (i,j)(i, j) 是海洋。

约束条件保证网格周边的所有单元格(即满足 i=1,i=H,j=1,j=Wi = 1, i = H, j = 1, j = W 中至少一个的单元格)都是海洋。

高桥的飞船在网格中的一个单元格上坠毁。之后,他按照长度为 NN 的字符串 TT 中的指令移动了 NN 次。对于 i=1,2,,Ni = 1, 2, \ldots, NTT 的第 ii 个字符描述了第 ii 次移动的方向如下:

  • L 表示向左移动一个单元格。也就是说,如果他在移动前在 (i,j)(i, j),移动后会在 (i,j1)(i, j - 1)
  • R 表示向右移动一个单元格。也就是说,如果他在移动前在 (i,j)(i, j),移动后会在 (i,j+1)(i, j + 1)
  • U 表示向上移动一个单元格。也就是说,如果他在移动前在 (i,j)(i, j),移动后会在 (i1,j)(i - 1, j)
  • D 表示向下移动一个单元格。也就是说,如果他在移动前在 (i,j)(i, j),移动后会在 (i+1,j)(i + 1, j)

已知他路径上的所有单元格(包括他坠毁的单元格和他当前所在的单元格)都不是海洋。请输出可能是他当前位置的单元格数量。

约束条件

  • H,WH, WNN 为整数。
  • 3H,W5003 \leq H, W \leq 500
  • 1N5001 \leq N \leq 500
  • TT 是长度为 NN 的字符串,由 L、R、U 和 D 组成。
  • SiS_i 是长度为 WW 的字符串,由 . 和 # 组成。
  • 至少有一个单元格可能是高桥的当前位置。
  • 网格周边的所有单元格都是海洋。

输入

输入以以下格式从标准输入给出:

HH WW NN

TT

S1S_1

S2S_2

\vdots

SHS_H

输出

一个整数,表示可能的方案数

样例

6 7 5
LULDR
#######
#...#.#
##...##
#.#...#
#...#.#
#######

2
13 16 9
ULURDLURD
################
##..##.#..####.#
###.#..#.....#.#
#..##..#####.###
#...#..#......##
###.##.#..#....#
##.#####....##.#
###.###.#.#.#..#
######.....##..#
#...#.#.######.#
##..###..#..#.##
#...#.#.#...#..#
################
6