Počet bodov:
Popis:  6b
Program:  4b

Znova je to tu. Začal nám nový ročník KSP a s tým spojené prvé kolo. Zahrievajú sa servery, vedúci si pripravujú červené perá vo svojich obľúbených softvéroch na editovanie PDF a distribúcia zadaní je v plnom prúde. Začal pracovať aj náš tím odvážnych webových vývojárov. Zhodli sa, že v novom roku treba softvér aj testovať.

Zaručene najdôležitejšou časťou celej série je výsledkovka. Zodpovední vývojári preto chcú pripraviť test, ktorý overí, či daná vygenerovaná výsledkovka mohla vzniknúť korektným spôsobom. Zvládnete im pomôcť?

Úloha

Zadanú dostanete výsledkovku – zoznam mien riešiteľov od najlepšieho po najhoršieho. Z výsledkovky sa pre každého riešiteľa dozvieme aj to, ako sa jeho umiestnenie zmenilo oproti minulej sérii:

  • Zlepšenie sa znamená, že poradie účastníka v aktuálnej výsledkovke je lepšie (menšie) ako jeho poradie v predošlej výsledkovke.

  • Zhoršenie sa znamená, že poradie účastníka v aktuálnej výsledkovke je horšie (väčšie) ako jeho poradie v predošlej výsledkovke.

  • Za predpokladu, že sa poradie nezväčšilo, ani nezmenšilo, hovoríme, že sa jeho poradie zachovalo.

Zistite, či zadaná výsledkovka mohla vzniknúť korektným spôsobom z nejakej predošlej výsledkovky a jednu takúto predošlú výsledkovku nájdite. Z dôvodu zachovania jednoduchosti zadania rátame s tým, že účastníci medzi sériami nepribúdajú, nemiznú a nemôžu byť dvaja na tom istom mieste.

Formát vstupu

Z prvého riadku načítajte \(z\) (\(1 \leq z \leq 100\,000\)) – počet riešiteľov.

\(z\) nasledujúcich riadkov zobrazuje aktuálne výsledky zoradené od najlepšieho riešiteľa (najmenšie umiestnenie) po najhoršieho. Každý riadok začína znakom, ktorý určuje relatívny posun voči predošlej výsledkovke: "+" pre zlepšenie, "-" pre zhoršenie, "0" pre zachovanie poradia. Za medzerou nasleduje meno riešiteľa pozostávajúce z malých písmen anglickej abecedy (dĺžky najviac 20).

Formát výstupu

Na prvý riadok vypíšte reťazec "OK", ak daná výsledkovka mohla vzniknúť korektne. Na ďalších \(z\) riadkov vypíšte jedno možné predošlé poradie riešiteľov (od najlepšieho po najhoršieho).

Vypíšte reťazec "FAIL", ak je daná výsledkovka určite chybná.

Príklad

Input:

3
+ peter
- alica
0 bob

Output:

OK
alica
peter
bob

Input:

1
- peter

Output:

FAIL

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.