#include <bits/stdc++.h>
using ll = long long;
char g[500][500];
bool vis[500][500];
const int dx[] {0, 1, 0, -1}, dy[] {-1, 0, 1, 0};
signed main() {
int n, m, p, k;
std::cin >> n >> m >> p >> k;
int stx = 0, sty = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
std::cin >> g[i][j];
if (g[i][j] == 's') {
stx = i, sty = j;
}
}
}
std::queue<std::array<int ,4>> q;
q.push({stx, sty, p, k});
vis[stx][sty] = true;
while (q.size()) {
auto [x, y, z, u] = q.front();
q.pop();
if (g[x][y] == 'e' && z >= 0 && u >= 0) {
std::cout << "YES\n";
return 0;
}
for (int i = 0; i < 4; i++) {
int a = dx[i] + x, b = dy[i] + y, c = z - 1, d = u;
if (a >= 1 && b >= 1 && a <= n && b <= m) {
if (vis[a][b] || g[a][b] == 'w') continue ;
if (g[a][b] == 'd') d = u - 1;
q.push({a, b, c, d});
vis[a][b] = true;
}
}
}
std::cout << "NO\n";
return 0;
}