/*
	Strpove treba prebaciti sa prve hrpe, preko druge, na trecu hrpu,
	tako da	na trecoj hrpi budu u zadanom poretku.
	Promatra se jedan po jedan broj koji treba dobiti na trecoj hrpi:
	Nakon stavljanja nekog broja na trecu hrpu, moguce su ove dvije
	situacije:
	a) Sljedeci strip kojeg zelimo staviti na trecu hrpu je na vrhu druge
	   hrpe, pa ga samo treba prebaciti na trecu.
	   U tom trenutku se na vrhu druge hrpe nalazi najveci broj od preostalih
	   brojeva manjih (PRVI MANJI) od zadnjeg prebacenog, a koji jos nisu
	   prebaceni ne trecu.
	b) Trazeni stip je u prvoj hrpi, pa je potrebno sve stripove koji su
	   iznad njega prvo prebaciti na drugu hrpu, zatim njega na drugu, pa
	   sa druge na trecu.
	   U tom slucaju taj trazeni strip moze biti samo VECI od zadnjeg
	   prebacenog na trecu hrpu.
	Nakog nekog stipa prebacenog na trecu hrpu, moze doci samo veci strip ili
	prvi manji od njega, a koji jos nije prebacen.
	Moze se zakljuciti da je dovoljno gledati samo zadnji prebaceni strip i
	pratiti koje smo stripove vec prebacili na trecu hrpu.
*/

#include <stdio.h>

int main()
{
	/* U dvostuko vezanoj listi se za svaki strip pamti prvi veci i
	prvi manji od njega medu preostalima. */

	int prviveci[1001], prvimanji[1001];
	int j, i, prosliveci, prosli, greska, k, l, br;
	char pn[2002]; /* rezultat se zapisuje u niz 'pn' */
	FILE *fin, *fout;
	fin=fopen("STRIPOVI.IN", "rt");
	fscanf (fin, "%d", &j);

	/* inicijalizacija liste */
	for (i=1; i<j+1; i++)
	{	prvimanji[i]=i-1;
		prviveci[i]=i+1;
	}

	br=0;
	prosli=0;
	prosliveci=0;
	greska=0;
	for (k=0; k<j; k++)
	{	fscanf (fin, "%d", &i);

		/* Slucaj (b) */

		if (i>prosli)
		{	if (k!=0)
			{	prvimanji[prviveci[prosli]]=prvimanji[prosli];
				prviveci[prvimanji[prosli]]=prviveci[prosli];
			}
			for (l=0; l<i-prosliveci; l++) pn[br++]='P';
			pn[br++]='N';
			prosli=i;
			prosliveci=i;
		}

		/* Slucaj (a) */

		else if (i==prvimanji[prosli])
		{	if (k!=0)
			{	prvimanji[prviveci[prosli]]=prvimanji[prosli];
				prviveci[prvimanji[prosli]]=prviveci[prosli];
			}
		pn[br++]='N';
		prosli=i;
		}
		else greska=1;
	}
	pn[br]=0;

	/* Ispis rezultata */

	fout=fopen("STRIPOVI.OUT", "wt");
	if (greska) fprintf (fout, "NEMOGUCE");
	else fprintf (fout, "%s", pn);
	fclose (fout);

	return 0;
}
