#include #include using namespace std; int n; int x[1000], y[1000]; int niz[1000]; enum { LEFT, RIGHT, UP, DOWN }; int adj[1000][4]; int next[1000], prev[1000]; int cmp_x( int a, int b ) { if( x[a] != x[b] ) return x[a] < x[b]; return y[a] < y[b]; } int cmp_y( int a, int b ) { if( y[a] != y[b] ) return y[a] < y[b]; return x[a] < x[b]; } int smjer( int a, int b ) { if( x[a] == x[b] ) { if( y[a] < y[b] ) return 'N'; else return 'S'; } else { if( x[a] < x[b] ) return 'E'; else return 'W'; } } int main( void ) { while( scanf( "%d", &n ) == 1 ) { if( n == 0 ) break; for( int i = 0; i < n; ++i ) { scanf( "%d%d", &x[i], &y[i] ); niz[i] = i; for( int d = 0; d < 4; ++d ) adj[i][d] = -1; } sort( niz, niz+n, cmp_x ); for( int i = 0; i < n; i += 2 ) { adj[niz[i]][UP] = niz[i+1]; adj[niz[i+1]][DOWN] = niz[i]; } sort( niz, niz+n, cmp_y ); for( int i = 0; i < n; i += 2 ) { adj[niz[i]][RIGHT] = niz[i+1]; adj[niz[i+1]][LEFT] = niz[i]; } int prvi = niz[0]; int drugi = adj[prvi][UP]; next[prvi] = drugi; prev[drugi] = prvi; for( int curr = drugi; curr != prvi; curr = next[curr] ) { for( int d = 0; d < 4; ++d ) { if( adj[curr][d] == -1 ) continue; if( adj[curr][d] == prev[curr] ) continue; next[curr] = adj[curr][d]; } prev[next[curr]] = curr; } int a = 0; for( ;; ) { int b = next[a]; printf( "%c", smjer( a, b ) ); a = b; if( a == 0 ) break; } printf( "\n" ); } return 0; }