Pe o linie orizontală se găsesc n greieri. Ei încep să stea „capră” într-o ordine prestabilită începând cu ultimul, pe rând, până la primul. Toţi greierii care îl precedă pe cel care stă „capră” sar peste acesta, în ordine.
De exemplu pentru n=4, mai întâi stă „capră” greierele 4 şi peste el sar, în ordine, 3, 2 şi 1. Apoi stă „capră” greierele 3 şi sar peste el, în ordine, 2, 1 şi 4. Apoi stă „capră” greierele 2 şi peste el sar, în ordine, 1, 3 şi 4. Apoi stă „capră” greierele 1 şi sar peste el, în ordine, 4 , 3 şi 2, şi se revine la ordinea iniţială.
Cerinţă
Scrieţi un program care citeşte numerele naturale n şi m şi determină:
a) De câte sărituri este nevoie pentru a se ajunge la ordinea iniţială?
b) Cum vor fi aşezaţi greierii după m sărituri?
Date de intrare
Fişierul de intrare greieri.in conţine pe prima linie numerele naturale n şi m, separate printr-un spaţiu, cu semnificaţia din enunţ.
Date de ieşire
Fişierul de ieşire greieri.out va conţine:
a) pe prima linie o valoare ce reprezintă numărul de sărituri după care se revine la ordinea iniţială;
b) pe a doua linie numerele ce reprezintă ordinea greierilor după m paşi, separate prin spaţii.
Restricţii
• 2 ≤ n ≤ 100000
• 1 ≤ m ≤ 2000000000
• se acordă 20 % din punctaj pentru rezolvarea corectă cerinței a);
• se acordă 80 % din punctaj pentru rezolvarea corectă cerinței b);
• răspunsurile la cele două cerinţe vor fi scrise exact pe linia indicată; în cazul în care nu cunoaşteţi rezolvarea la una dintre cerinţe, pe linia respectivă se va scrie valoarea -1.
Exemple
greieri.in
greieri.out
Explicaţii
4 5
12
4 3 1 2
După cum se vede şi în imagine pornind de la linia iniţială
1 2 3 4 la primul pas sare greierele 3 peste 4 , la pasul 2 sare greierele 2 peste 4 , la pasul trei sare greierele 1 peste 4 la pasul patru sare greierele 2 peste 3, iar la pasul cinci sare greierele 1 peste 3.