/*
TASK:flower
LANG:C++
*/
#include <stdio.h>
#define min(a,b) (a < b ? a : b)
#define FOR(i,n) for(int i=0;i<=n;i++)
#define maxn 100

int dp[2][52][52][52][52];
int s[128];
int n;

int main() {
    scanf("%d",&n);
    int i = 0;
    int cn(0),cs(0),cw(0),ce(0);
    while(i<n) {
               char c = ' ';
               while(c != 'N' && c!='W' && c!='E' && c!='S') scanf("%c",&c);
               if(c=='N') { s[i]=0; cn++; }
               else if(c=='S') { s[i]=1; cs++; }
               else if(c=='W') { s[i]=2; cw++; }
               else { s[i]=3; ce++; }
               i++;
    }
    dp[0][0][0][0][0] = 1;
    bool first = false;
    bool second = true;
    FOR(i,n-1) {
            FOR(i1,cn)
               FOR(i2,min(cs,i1))
                      FOR(i3,cw)
                         FOR(i4,min(ce,i3)) {
                               if(i1-1>=i2)
                                 dp[second][i1][i2][i3][i4] += dp[first][i1-1][i2][i3][i4];
                               if(i2)
                                 dp[second][i1][i2][i3][i4] += dp[first][i1][i2-1][i3][i4];
                               if(i3-1>=i4) 
                                 dp[second][i1][i2][i3][i4] += dp[first][i1][i2][i3-1][i4];
                               if(i4)
                                 dp[second][i1][i2][i3][i4] += dp[first][i1][i2][i3][i4-1];
                            }
            first = !first;
            second = !second;
    }
    printf("%d\n",dp[first][cn][cs][cw][ce]-1);
    return 0;
}
