华尔兹
题号:NC15204
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

有一个 n x m 大小的网格,其中有些格点比较特殊,当玩家站在上面的时候会自动移动到相邻四个方向之一,另外一些格点暂时还并不特殊,因为它们的移动方向还未知,如下图:

上图中,第一列和最后一行格点的移动方向未知,其他点的移动方向已经确定了,已经在图中用箭头指出其方向。
现在给定一个起点(上图中的绿色方块)和一个终点(上图中的红色方块),你需要给其中一些移动方向未知的格点确定一个方向,使得玩家能从起点移动到终点。
如下图是一个方案,其中蓝色格点标注出了从起点到终点的路径:

输入描述:

对于一个关卡,其对应的文件描述如下。
第一行六个空格隔开的整数 n,m,sx,sy,tx,ty,它们的意义分别如下:
- n 和 m 描述地图的大小,它们分别表示地图的行数、列数。
- sx,sy 分别表示起点的行、列坐标,即起点为第 sx 行第 sy 列的格点。(行、列的编号均从 1 开始)
- tx,ty 分别表示终点的行、列坐标,描述规则同上。
接下来 n 行每行 m 个字符,每个字符表示网格对应位置的状态,不同字符的意义如下:
- w表示向上移动
- s表示向下移动
- a表示向左移动
- d表示向右移动
- .表示方向未确定

输出描述:

对于一个关卡,其对应的输出文件为将其输入文件中 . 替换为 w, a, s, d 中任意一个字符的结果,其余内容与格式不变。
示例1

输入

复制
4 4 1 1 4 4
.aaa
.www
.sss
....

输出

复制
4 4 1 1 4 4
saaa
swww
dsss
dddw