Se dă o matrice cu linii și coloane de numere întregi. Liniile sunt numerotate cu numere de la la , iar coloanele cu și .
Există operații care pot fi executate asupra matricii: .
La o operație se aleg linii (distincte) ale matricii și se permută circular în jos, iar la o operație se aleg linii (distincte) și se permută circular în sus ().
Operațiile si sunt similare, numai că în loc de linii se aleg .
Cerința
Scrieți un program care prin efectuarea a cel mult operații de tip asupra matricii date să o transforme astfel încât nici una dintre coloanele ei să nu conțină un subșir strict crescător de lungime mai mare decât (adică cel mai mic întreg mai mare sau egal decât ).
Date de intrare
Fișierul de intrare matrice.in
conține pe prima linie numărul natural . Pe fiecare din următoarele linii sunt câte numere întregi separate printr-un spațiu, reprezentând elementele matricii.
Date de ieșire
Fișierul de ieșire matrice.out
va conține câte o operație pe linie. O operație este identificată prin tipul ei (poate fi J3
, S3
, J4
sau S4
) și numere (pentru J3
și S3
) sau numere (pentru J4
și S4
) în ordine strict crescătoare, reprezentând rândurile asupra cărora este executată operația. Tipul operației și celelalte numere trebuie să fie separate prin exact un spațiu.
Atenție! Tipul operației este format din două caractere scrise fără spațiu între ele.
Restricții și precizări
- ;
- Un subșir strict crescător al unui șir este un șir , unde și ;
- Elementele matricii sunt numere întregi mai mari sau egale cu și mai mici sau egale cu .
Exemplu
matrice.in
6
1 2
3 1
4 4
6 3
5 5
2 6
matrice.out
S4 1 3 4 5
J3 4 5 6
Explicație
După efectuarea operațiilor, matricea va fi
4 4
3 1
6 3
2 6
5 5
1 2
Lungimea celui mai lung subșir strict crescător de pe prima coloană este , iar de pe cea de-a doua este ( si sunt mai mici sau egale decât ).