#include <bits/stdc++.h>
using namespace std;
int r, c, n;
set<int> b[100005];
map<int, set<int> > mp1, mp2;
struct stt {
  int x, y, dx, dy;
  friend bool operator<(stt a, stt b) {
    if (a.x != b.x)
      return a.x < b.x;
    else if (a.y != b.y)
      return a.y < b.y;
    else if (a.dx != b.dx)
      return a.dx < b.dx;
    else
      return a.dy < b.dy;
  }
};
void pushdiag(int x, int y) {
  mp1[x + y].insert(x);
  mp2[x - y].insert(x);
}
bool ok(int x, int y) {
  return (x < 0 || y < 0 || x >= r || y >= c || b[x].count(y));
}
stt doit(stt s, long long &stp) {
  int x = s.x, y = s.y, dx = s.dx, dy = s.dy;
  stp = 0;
  if (dx + dy == 0) {
    set<int>::iterator it = mp1[x + y].lower_bound(x);
    if (dx == -1) it--;
    stp = abs(x - *it) - 1;
  } else if (dx - dy == 0) {
    set<int>::iterator it = mp2[x - y].lower_bound(x);
    if (dx == -1) it--;
    stp = abs(x - *it) - 1;
  }
  int nx = x + stp * dx, ny = y + stp * dy, ndx = dx, ndy = dy;
  if (ok(nx, ny + dy) && ok(nx + dx, ny)) {
    ndx = -ndx;
    ndy = -ndy;
  } else if (ok(nx, ny + dy)) {
    ndy = -ndy;
    nx += dx;
  } else if (ok(nx + dx, ny)) {
    ndx = -ndx;
    ny += dy;
  } else {
    ndx = -ndx;
    ndy = -ndy;
  }
  stp++;
  return (stt){nx, ny, ndx, ndy};
}
bool sol(stt s, long long &ans) {
  ans = 0;
  set<stt> vis;
  stt st = s;
  while (vis.insert(st).second) {
    long long val;
    stt nt = doit(st, val);
    ans += val;
    if (st.dx == -nt.dx && st.dy == -nt.dy) return false;
    st = nt;
  }
  return true;
}
int main() {
  scanf("%d%d%d", &r, &c, &n);
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    x--;
    y--;
    b[x].insert(y);
    pushdiag(x, y);
  }
  for (int i = 0; i < r; i++) pushdiag(i, -1), pushdiag(i, c);
  for (int j = -1; j <= c; j++) pushdiag(-1, j), pushdiag(r, j);
  int sx, sy;
  char t[10];
  scanf("%d%d%s", &sx, &sy, t);
  sx--;
  sy--;
  int dx = (t[0] == 'N' ? -1 : 1), dy = (t[1] == 'W' ? -1 : 1);
  long long tt, val, ans = 0;
  stt st = doit((stt){sx, sy, dx, dy}, tt);
  if (sol(st, val))
    ans = val;
  else {
    ans = val;
    st = (stt){st.x, st.y, -st.dx, -st.dy};
    sol(st, val);
    ans += val - 1;
  }
  printf("%I64d\n", ans);
  return 0;
}
