Chef Alexandru a primit o comandă pentru specialitatea casei: o porție zdravănă de prăjitură cu mujdei.
Pentru prăjitură, el are nevoie de exact litri de mujdei. Chef Alexandru are la dispoziție două castroane și , de capacitate , respectiv litri, ambele inițial goale.
Chef Alexandru poate face următoarele operații:
UMPLE [A/B]
— umple complet castronul sau cu , respectiv litri de mujdei;GOLESTE [A/B]
— golește complet castronul sau ;VARSA [A/B] IN [B/A]
— varsă cât mai mult mujdei posibil din castronul (sau ) în castronul (sau ). Dacă castronul sursă are litri de mujdei și castronul destinație are litri liberi, atunci Chef Alexandru va vărsa exact litri.
Cerință
Chef Alexandru vă cere ajutorul: găsiți o serie de cel mult operații în urma cărora se vor afla exact litri de mujdei într-unul dintre cele două castroane.
Atenție: Orice soluție validă este acceptată, nu este necesar să minimizați lungimea acesteia!
Date de intrare
Pe singura linie din standard input se dau trei numere naturale , și separate prin câte un spațiu, având semnificația din enunț.
Date de ieșire
Dacă nu există soluție, atunci pe singura linie din standard output afișați IMPOSIBIL
.
Dacă există o soluție, atunci afișați pe prima linie din standard output numărul de operații necesare, iar pe următoarele linii, în ordine, afișați operațiile efectuate.
Restricții și precizări
# | Punctaj | Restricții |
---|---|---|
1 | 20 | , și |
2 | 20 | |
3 | 30 | |
4 | 30 | Fără restricții suplimentare |
Exemplul 1
stdin
3 2 1
stdout
2
UMPLE A
VARSA A IN B
Exemplul 2
stdin
1110 10101 110
stdout
IMPOSIBIL
Exemplul 3
stdin
10 6 4
stdout
6
UMPLE B
VARSA B IN A
UMPLE A
UMPLE B
GOLESTE B
VARSA A IN B