#include<stdio.h>
struct xy {int x, y;}A[1212],B[1212];
int D[1212][1212];
int T[256];
int dx[4] = { 0,0,1,-1 }, dy[4] = { 1,-1,0,0 };
int dist(xy a, xy b) {return (a.x - b.x)*(a.x - b.x) + (a.y - b.y)*(a.y - b.y);}
int min(int a, int b) { if (a < b)return a; return b; }
int main() {
T['N'] = 0, T['S'] = 1, T['E'] = 2, T['W'] = 3;
int n, m, i, j;
char x;
scanf("%d%d", &n, &m);
scanf("%d%d", &A[0].x, &A[0].y); scanf("%d%d", &B[0].x, &B[0].y);
for (i = 1; i <= n; i++) scanf(" %c", &x), A[i] = { A[i - 1].x + dx[T[x]],A[i - 1].y + dy[T[x]] };
for (i = 1; i <= m; i++) scanf(" %c", &x), B[i] = { B[i - 1].x + dx[T[x]],B[i - 1].y + dy[T[x]] };
D[0][0] = 0;
for (i = 0; i <= n; i++) {
for (j = 0; j <= m; j++) {
if (i == 0 && j == 0)continue;
D[i][j] = 2e9;
if (i > 0)D[i][j] = min(D[i][j], D[i - 1][j]+ dist(A[i], B[j]));
if (j > 0)D[i][j] = min(D[i][j], D[i][j - 1]+ dist(A[i], B[j]));
if (i > 0 && j > 0)D[i][j] = min(D[i][j], D[i - 1][j - 1]+ dist(A[i], B[j]));
}
}
printf("%d", D[n][m]);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kc3RydWN0IHh5IHtpbnQgeCwgeTt9QVsxMjEyXSxCWzEyMTJdOwppbnQgRFsxMjEyXVsxMjEyXTsKaW50IFRbMjU2XTsKaW50IGR4WzRdID0geyAwLDAsMSwtMSB9LCBkeVs0XSA9IHsgMSwtMSwwLDAgfTsKaW50IGRpc3QoeHkgYSwgeHkgYikge3JldHVybiAoYS54IC0gYi54KSooYS54IC0gYi54KSArIChhLnkgLSBiLnkpKihhLnkgLSBiLnkpO30KaW50IG1pbihpbnQgYSwgaW50IGIpIHsgaWYgKGEgPCBiKXJldHVybiBhOyByZXR1cm4gYjsgfQppbnQgbWFpbigpIHsKCVRbJ04nXSA9IDAsIFRbJ1MnXSA9IDEsIFRbJ0UnXSA9IDIsIFRbJ1cnXSA9IDM7CglpbnQgbiwgbSwgaSwgajsKCWNoYXIgeDsKCXNjYW5mKCIlZCVkIiwgJm4sICZtKTsKCXNjYW5mKCIlZCVkIiwgJkFbMF0ueCwgJkFbMF0ueSk7IHNjYW5mKCIlZCVkIiwgJkJbMF0ueCwgJkJbMF0ueSk7Cglmb3IgKGkgPSAxOyBpIDw9IG47IGkrKykgc2NhbmYoIiAlYyIsICZ4KSwgQVtpXSA9IHsgQVtpIC0gMV0ueCArIGR4W1RbeF1dLEFbaSAtIDFdLnkgKyBkeVtUW3hdXSB9OwoJZm9yIChpID0gMTsgaSA8PSBtOyBpKyspIHNjYW5mKCIgJWMiLCAmeCksIEJbaV0gPSB7IEJbaSAtIDFdLnggKyBkeFtUW3hdXSxCW2kgLSAxXS55ICsgZHlbVFt4XV0gfTsKCURbMF1bMF0gPSAwOwoJZm9yIChpID0gMDsgaSA8PSBuOyBpKyspIHsKCQlmb3IgKGogPSAwOyBqIDw9IG07IGorKykgewoJCQlpZiAoaSA9PSAwICYmIGogPT0gMCljb250aW51ZTsKCQkJRFtpXVtqXSA9IDJlOTsKCQkJaWYgKGkgPiAwKURbaV1bal0gPSBtaW4oRFtpXVtqXSwgRFtpIC0gMV1bal0rIGRpc3QoQVtpXSwgQltqXSkpOwoJCQlpZiAoaiA+IDApRFtpXVtqXSA9IG1pbihEW2ldW2pdLCBEW2ldW2ogLSAxXSsgZGlzdChBW2ldLCBCW2pdKSk7CgkJCWlmIChpID4gMCAmJiBqID4gMClEW2ldW2pdID0gbWluKERbaV1bal0sIERbaSAtIDFdW2ogLSAxXSsgZGlzdChBW2ldLCBCW2pdKSk7CgkJfQoJfQoJcHJpbnRmKCIlZCIsIERbbl1bbV0pOwoJcmV0dXJuIDA7Cn0=