#include<stdio.h>
#include<map>
using namespace std;
map<pair<int, int>, int>M;
char T[256];
int dx[4] = { 1,0,-1,0 };
int dy[4] = { 0,1,0,-1 };
int min(int a, int b) { if (a < b)return a; return b; }
int main() {
T['N'] = 0, T['E'] = 1, T['S'] = 2, T['W'] = 3;
int n;
int ans = 1e9;
scanf("%d", &n);
int nowx = 0, nowy = 0, nowt = 1;
M[{0, 0}] = nowt;
for (int i = 0; i < n; i++) {
char x; int t;
scanf(" %c%d", &x, &t);
for (int j = 0; j < t; j++) {
nowx += dx[T[x]], nowy += dy[T[x]], nowt++;
if (M[{nowx, nowy}])ans = min(ans, nowt - M[{nowx, nowy}]);
M[{nowx, nowy}] = nowt;
}
}
if (ans == 1e9)ans = -1;
printf("%d", ans);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWFwPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwptYXA8cGFpcjxpbnQsIGludD4sIGludD5NOwpjaGFyIFRbMjU2XTsKaW50IGR4WzRdID0geyAxLDAsLTEsMCB9OwppbnQgZHlbNF0gPSB7IDAsMSwwLC0xIH07CmludCBtaW4oaW50IGEsIGludCBiKSB7IGlmIChhIDwgYilyZXR1cm4gYTsgcmV0dXJuIGI7IH0KaW50IG1haW4oKSB7CglUWydOJ10gPSAwLCBUWydFJ10gPSAxLCBUWydTJ10gPSAyLCBUWydXJ10gPSAzOwoJaW50IG47CglpbnQgYW5zID0gMWU5OwoJc2NhbmYoIiVkIiwgJm4pOwoJaW50IG5vd3ggPSAwLCBub3d5ID0gMCwgbm93dCA9IDE7CglNW3swLCAwfV0gPSBub3d0OwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQljaGFyIHg7IGludCB0OwoJCXNjYW5mKCIgJWMlZCIsICZ4LCAmdCk7CgkJZm9yIChpbnQgaiA9IDA7IGogPCB0OyBqKyspIHsKCQkJbm93eCArPSBkeFtUW3hdXSwgbm93eSArPSBkeVtUW3hdXSwgbm93dCsrOwoJCQlpZiAoTVt7bm93eCwgbm93eX1dKWFucyA9IG1pbihhbnMsIG5vd3QgLSBNW3tub3d4LCBub3d5fV0pOwoJCQlNW3tub3d4LCBub3d5fV0gPSBub3d0OwoJCX0KCX0KCWlmIChhbnMgPT0gMWU5KWFucyA9IC0xOwoJcHJpbnRmKCIlZCIsIGFucyk7CglyZXR1cm4gMDsKfQ==