Judantys robotai

Yra keletas robotų, kurie gali judėti visoje dvimatėje plokštumoje. Plokštuma padalinta į vienetinius kvadratėlius, turinčius sveikąsias koordinates (x, y). 

Roboto būseną apibūdina jo padėtis ir judėjimo kryptis. Padėtis nusakoma sveikųjų skaičių pora (x, y), o kryptis – laipsniais. Yra keturios galimos kryptys – 0, 90, 180 ir 270 laipsnių. 

Robotai gali vykdyti dviejų rūšių – posūkio ir žingsnio – komandas. Posūkio komanda turi vieną parametrą D, kurio galimos reikšmės yra 90, 180 ir 270. Ši komanda pakeičia roboto kryptį per D laipsnių: jei dabartinė roboto kryptis yra C, tai ji pakeičiama į (C + D) mod 360. Žingsnio komanda parametrų neturi. Ją atlikdamas robotas pajuda per vieną žingsnį jo judėjimo kryptimi. Vienas žingsnis 0 laipsnių kryptimi pakeičia roboto padėtį (pakeičia atitinkamas koordinates) per (1, 0), 90 laipsnių kryptimi – per (0, 1), 180 laipsnių kryptimi – per (-1, 0), o 270 laipsnių kryptimi – per (0, -1).

Kiekvienas robotas turi jam skirtą baigtinio ilgio komandų seką ir tas komandas atlieka iš eilės. Kai visos komandos atliktos, robotas sustoja savo galutinėje padėtyje. Roboto judėjimas visiškai nepriklauso nuo kitų robotų, tą pačią padėtį (langelį) plokštumoje gali užimti bet koks skaičius robotų.

Prieš pradedant robotams judėti, valdymo centras gali įsakyti pašalinti tam tikras komandas iš kai kurių robotų komandų sekos. Taip valdymo centras gali keisti robotų judėjimo trajektorijas bei galutines padėtis.

Valdymo centras nusprendė, kad visi robotai turi susirinkti į vieną vietą (langelį) apžiūrai, taigi reikia, kad visų robotų galutinės padėtys sutaptų. Taip pat centras nori, kad tai būtų įgyvendinta pašalinus kuo mažiau komandų.

UŽDUOTIS
Turime R robotų. Kiekvienas robotas turi pradinę padėtį, pradinę judėjimo kryptį ir jam paskirtą komandų seką. 

Parašykite programą, kuri nustatytų, kiek mažiausiai komandų iš visų robotų komandų sekų reikia pašalinti, kad visų robotų galutinės padėtys sutaptų (šią padėtį pavadinkime bendra galutine padėtimi) bei rastų bendrą galutinę padėtį. Jeigu galima parinkti kelias bendras galutines padėtis, pakanka nurodyti bet kurią.

PRADINIAI DUOMENYS
Pradiniai duomenys įrašyti byloje robots.in. Pirmoje eilutėje įrašytas robotų skaičius R (). Toliau seka R grupių eilučių – po vieną grupę kiekvienam robotui. 

Pirmoje grupės eilutėje yra keturi tarpu atskirti skaičiai: pradinė roboto padėtis (x, y), pradinė roboto judėjimo kryptis C (C = 0, 90, 180 arba 270) ir roboto komandų sekos ilgis n (). Toliau grupėje yra n eilučių, aprašančių roboto komandų seką. Kiekvienoje eilutėje yra po vieną komandą. 
Žingsnio komandai skirtoje eilutėje įrašytas vienintelis simbolis –  raidė S. Posūkio komandai skirtoje eilutėje įrašyta raidė T ir posūkio parametras D (D = 90, 180 arba 270). Raidę T nuo posūkio parametro skiria tarpas.

REZULTATAI
Rezultatus įrašykite į bylą robots.out. Jeigu neįmanoma robotų surinkti į tą pačią galutinę padėtį (langelį), į vienintelę rezultatų bylos eilutę įrašykite skaičių  (minus vienas). 

Priešingu atveju, į pirmą eilutę įrašykite mažiausią skaičių komandų, kurias reikia pašalinti. Antroje eilutėje tuomet įrašykite du tarpu atskirtus skaičius: bendros galutinės padėties koordinates x ir y.

PRADINIŲ DUOMENŲ IR REZULTATŲ PAVYZDŽIAI

Pradiniai duomenys 		Rezultatai 		Paaiškinimai

Turime du robotus. Pirmojo pradinė padėtis yra (2, 0), judėjimo kryptis 270, jam duotos 5 komandos. Antrojo pradinės padėties koordinatės yra 
(1, -1), judėjimo kryptis 0, jam duotos 8 komandos. Mažiausias skaičius komandų, kurias reikia pašalinti, yra lygus 2. 

Tuomet robotų galutinės padėtys sutaps ir bendros galutinės padėties koordinatės bus (2, 1). Tai galima gauti, pvz., pašalinus pirmojo roboto 3-ąją komandą ir antrojo roboto 5-ąją komandą.	

(robots.in)		(robots.out)

2
2 1

2
2 0 270 5
S
T 180
S
S
S
1 -1 0 8
S
S
T 90
S
T 270
S
T 90
S