#include <bits/stdc++.h>
using namespace std;
vector<bool> visited(100005, false);
vector<long long> adj[100005];
vector<long long> parent(100005, -1);
long long ans1;
long long expo(long long x, long long n, long long M) {
  if (n == 0)
    return 1;
  else if (n % 2 == 0)
    return (expo((x * x) % M, n / 2, M)) % M;
  else
    return (x * expo((x * x) % M, (n - 1) / 2, M)) % M;
}
bool sortbysec(pair<pair<long long, long long>, long long> p1,
               pair<pair<long long, long long>, long long> p2) {
  if (p1.first.first == p2.first.first)
    return p1.first.second > p2.first.second;
  return p1.first.first < p2.first.first;
}
void dfs(long long v) {
  visited[v] = true;
  ans1++;
  if (adj[v].size() == 0) return;
  for (long long j = 0; j < adj[v].size(); j++) {
    if (!visited[adj[v][j]]) dfs(adj[v][j]);
  }
}
long long find(vector<long long> &parent, long long i) {
  while (parent[i] != i) {
    parent[i] = parent[parent[i]];
    i = parent[i];
  }
  return parent[i];
}
void Union(vector<long long> &parent, long long i, long long j) {
  long long x = find(parent, i);
  long long y = find(parent, j);
  parent[x] = y;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long i, j, k, a, b, c, t, x, y, n, m, z, flag = 0, ans = 0, sum = 0;
  t = 1;
  while (t--) {
    string st;
    cin >> n;
    x = y = 0;
    flag = 1;
    long long flag1 = 0;
    for (i = 0; i < n; i++) {
      cin >> z >> st;
      if (flag1 == 1) continue;
      if (flag == 1) {
        if (y == 0) {
          if (st == "South") {
            y += z;
            if (y == 20000)
              flag = 1;
            else if (y > 20000)
              flag1 = 1;
            else
              flag = 0;
            continue;
          }
        } else if (y == 20000) {
          if (st == "North") {
            y -= z;
            if (y == 0)
              flag = 1;
            else if (y > 20000)
              flag1 = 1;
            else
              flag = 0;
            continue;
          }
        }
        flag1 = 1;
      }
      if (st == "South") {
        y += z;
        if (y == 20000)
          flag = 1;
        else if (y > 20000)
          flag1 = 1;
      } else if (st == "North") {
        y -= z;
        if (y == 0)
          flag = 1;
        else if (y < 0)
          flag1 = 1;
      } else if (st == "West") {
        x -= z;
      } else {
        x += z;
      }
    }
    if (flag1) {
      cout << "NO";
      return 0;
    }
    if (y == 0) {
      cout << "YES";
    } else {
      cout << "NO";
    }
  }
  return 0;
}
