import java.io.*;
import java.util.*;

public class polygon
{

    static class Tocka
    {
       int x;
       int y;
        
       public Tocka(int _x, int _y)
       {
          x = _x;
          y = _y; 
       }
    }
    
    public static void main(String[] args)throws Exception
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer stok;
        String line;
        Vector<Tocka> neobiskane = new Vector<Tocka>();
        Vector<Tocka> Yvecje = new Vector<Tocka>();
        Vector<Tocka> Ymanjse = new Vector<Tocka>();
        Vector<Tocka> Xvecje = new Vector<Tocka>();
        Vector<Tocka> Xmanjse = new Vector<Tocka>();
        Tocka zacetna, trenutna, naslednja;
        int[] najblizje = new int[4];
        Tocka[] kand = new Tocka[4];
        int stTock, n;
        boolean desno;
        int najvisji;
        while(!(line = reader.readLine()).equals("0"))
        {
            desno = true;
            String resitev = "";
            n = Integer.parseInt(line);
            //System.out.println(n);
            line = reader.readLine();
            stok = new StringTokenizer(line);
            zacetna = new Tocka(Integer.parseInt(stok.nextToken()), Integer.parseInt(stok.nextToken()));
            najvisji = zacetna.y;
            for(; n>1;n--)
            {
                line = reader.readLine();
                stok = new StringTokenizer(line);
                trenutna = new Tocka(Integer.parseInt(stok.nextToken()), Integer.parseInt(stok.nextToken()));
              //  System.out.println(line);
                neobiskane.add(trenutna);
            }
            trenutna = zacetna;
            while(!neobiskane.isEmpty())
            {
                Yvecje.clear();
                Ymanjse.clear();
                Xvecje.clear();
                Xmanjse.clear();
                Arrays.fill(najblizje, Integer.MAX_VALUE);
                for(Tocka t:neobiskane)
                {
                    if(t.x == trenutna.x && t.y > trenutna.y)
                    {
                        Yvecje.add(t);
                        if(t.y - trenutna.y < najblizje[0])
                        {
                            najblizje[0] = t.y - trenutna.y;
                            kand[0] = t;
                        }
                    }
                    else if(t.x == trenutna.x && t.y < trenutna.y)
                    {
                        Ymanjse.add(t);
                        if(trenutna.y - t.y < najblizje[1])
                        {
                            najblizje[1] = trenutna.y - t.y;
                            kand[1] = t;
                        }
                    }
                    else if(t.y == trenutna.y && t.x > trenutna.x)
                    {
                        Xvecje.add(t);
                        if(t.x - trenutna.x < najblizje[2])
                        {
                            najblizje[2] = t.x - trenutna.x;
                            kand[2] = t;
                        }
                    }
                    else if(t.y == trenutna.y && t.x < trenutna.x)
                    {
                        Xmanjse.add(t);
                        if(trenutna.x - t.x < najblizje[3])
                        {
                            najblizje[3] = trenutna.x - t.x;
                            kand[3] = t;
                        }
                    }
                }
                if(Yvecje.size()%2 == 1)
                {
                    trenutna = kand[0];
                    neobiskane.remove(kand[0]);
                    resitev += "N";
                }
                else if(Ymanjse.size()%2 == 1)
                {
                    trenutna = kand[1];
                    neobiskane.remove(kand[1]);
                    resitev += "S";
                }
                else if(Xvecje.size()%2 == 1)
                {
                    trenutna = kand[2];
                    neobiskane.remove(kand[2]);
                    resitev += "E";
                    if(najvisji<trenutna.y)
                    {
                        najvisji = trenutna.y;
                        desno = true;
                    }
                }
                else
                {
                    trenutna = kand[3];
                    neobiskane.remove(kand[3]);
                    resitev += "W";
                    if(najvisji<trenutna.y)
                    {
                        najvisji = trenutna.y;
                        desno = false;
                    }
                }
            }
            
            if(zacetna.x == trenutna.x && zacetna.y > trenutna.y)
            {
                resitev+="N";
            }
            else if(zacetna.x == trenutna.x && zacetna.y < trenutna.y)
            {
                resitev+="S";
            }
            else if(zacetna.y == trenutna.y && zacetna.x > trenutna.x)
            {
                resitev+="E";
            }
            else if(zacetna.y == trenutna.y && zacetna.x < trenutna.x)
            {
                resitev+="W";
            }

            if(!desno)
            {
                char q;
                String tmp ="";
                for(int i=resitev.length()-1; i>=0;i--)
                {
                    q = resitev.charAt(i);
                    if(q=='N') tmp += "S";
                    else if(q=='S') tmp += "N";
                    else if(q=='W') tmp += "E";
                    else tmp+= "W";
                }
                resitev = tmp;
            }
            
            System.out.println(resitev);

            line = reader.readLine();
        }
    }
}