package main
import (
"bufio"
"io"
"os"
)
func main() {
data, _ := io.ReadAll(os.Stdin)
p := 0
nextToken := func() []byte {
for p < len(data) && (data[p] == ' ' || data[p] == '\n' || data[p] == '\r' || data[p] == '\t') {
p++
}
start := p
for p < len(data) && data[p] != ' ' && data[p] != '\n' && data[p] != '\r' && data[p] != '\t' {
p++
}
return data[start:p]
}
parseInt := func(b []byte) int {
v := 0
for _, c := range b {
v = v*10 + int(c-'0')
}
return v
}
dir := func(c byte) byte {
switch c {
case 'N':
return 0
case 'E':
return 1
case 'S':
return 2
default:
return 3
}
}
n := parseInt(nextToken())
sa := nextToken()
sb := nextToken()
m := n - 1
a := make([]byte, m)
b := make([]byte, m)
for i := 0; i < m; i++ {
a[i] = dir(sa[i])
b[i] = dir(sb[i])
}
nextPos := [4][]int{}
for d := 0; d < 4; d++ {
nextPos[d] = make([]int, m+1)
nextPos[d][m] = m
}
for i := m - 1; i >= 0; i-- {
nextPos[0][i] = nextPos[0][i+1]
nextPos[1][i] = nextPos[1][i+1]
nextPos[2][i] = nextPos[2][i+1]
nextPos[3][i] = nextPos[3][i+1]
nextPos[b[i]][i] = i
}
opp := [4]int{2, 3, 0, 1}
inf := m + 1
dp := [5]int{inf, inf, inf, inf, inf}
dp[4] = 0
for i := 0; i < m; i++ {
x := int(a[i])
prev := -1
if i > 0 {
prev = int(a[i-1])
}
ndp := [5]int{inf, inf, inf, inf, inf}
for t := 0; t < 5; t++ {
j := dp[t]
if j == inf {
continue
}
nx := nextPos[x][j]
no := m
if i > 0 {
no = nextPos[opp[prev]][j]
}
expMax := -1
sim := -1
if nx < no {
expMax = nx - 1
sim = nx
} else {
expMax = no
}
if expMax >= j {
if j == 0 {
if 0 < ndp[4] {
ndp[4] = 0
}
} else if t != opp[x] {
if j < ndp[t] {
ndp[t] = j
}
}
badTop := opp[x]
for d := 0; d < 4; d++ {
if d == badTop {
continue
}
pos := nextPos[d][j]
if pos < expMax {
cand := pos + 1
if cand < ndp[d] {
ndp[d] = cand
}
}
}
}
if sim != -1 {
cand := sim + 1
if cand < ndp[x] {
ndp[x] = cand
}
}
}
dp = ndp
}
bad := opp[int(a[m-1])]
ok := false
for t := 0; t < 5; t++ {
j := dp[t]
if j == inf {
continue
}
if nextPos[bad][j] == m {
ok = true
break
}
}
out := bufio.NewWriterSize(os.Stdout, 16)
if ok {
out.WriteString("YES\n")
} else {
out.WriteString("NO\n")
}
out.Flush()
}