local function use_strict()
    local mt = {
        __index = function(t,k) error("_G __index:" .. k) end,
        __newindex = function(t,k,v) error("_G __newindex:" .. k) end
    }
    setmetatable(_G, mt)
end
local DBG = false
local function dbgpr(...)
    if DBG then
        io.write("[dbg]")
        print(...)
    end
end

local function dbgpr_t(tbl, use_pairs)
    if DBG then
        local enum = ipairs
        if use_pairs then
            enum = pairs
        end
        dbgpr(tbl)
        io.write("[dbg]")
        for i,v in enum(tbl) do
            io.write(i)
            io.write(":")
            io.write(tostring(v))
            io.write(" ")
        end
        print("")
    end
end

local function dbgpr_tp(tbl)
    dbgpr_t(tbl, true)
end

local function str2tbl(s)
    local t = {string.byte(s, 1, #s)}
    for i=1, #t do
        t[i] = string.char(t[i])
    end
    return t
end

--
use_strict()
local YES, NO = "YES", "NO"

local H, W, N = io.read("*n", "*n", "*n", "*l")
local sr, sc = io.read("*n", "*n", "*l")
local S = str2tbl(io.read("*l"))
local T = str2tbl(io.read("*l"))

local opposite = {
    L="R",
    R="L",
    D="U",
    U="D"
}

local function solve(size, move_lower, init_pos)
    local direc = move_lower == "L" and "horiz" or "verti"
    local move_upper = opposite[move_lower]
    -- Aoki wins when position p satisfies lower_bound <= p <= upper_bound
    local lower_bound = 1
    local upper_bound = size
    local math_max = math.max
    local math_min = math.min
    for n=N,1,-1 do
        if T[n] == move_lower then
            upper_bound = math_min(upper_bound + 1, size)
        elseif T[n] == move_upper then
            lower_bound = math_max(lower_bound - 1, 1)
        end
        if S[n] == move_lower then
            lower_bound = lower_bound + 1
        elseif S[n] == move_upper then
            upper_bound = upper_bound - 1
        end
        if lower_bound > size then
            return NO
        end
        if upper_bound < 1 then
            return NO
        end
        if lower_bound > upper_bound then
            return NO
        end
        dbgpr(direc, n, S[n], T[n], lower_bound, upper_bound)
    end
    if lower_bound <= init_pos and init_pos <= upper_bound then
        return YES
    else
        return NO
    end
end

local horiz_ans = solve(W, "L", sc)
dbgpr("horiz", horiz_ans)
if horiz_ans == NO then
    print(NO)
    return
end
local vert_ans = solve(H, "U", sr)
dbgpr("vert", vert_ans)
if vert_ans == NO then
    print(NO)
    return
end
print(YES)
