Gruppindelning
문제
Matteläraren Maria tänker dela in sina elever i två grupper under nästa lektion. Därför ställs hon nu inför ett vanligt problem: hur delar man in elever i två grupper på ett vettigt sätt? Det finns elever i klassen, och klassrummet har stolar, numrerade från till . När en elev anländer till klassrummet så sätter den sig alltid på den lediga stolen som är längst till vänster. Så om totalt personer dyker upp en viss dag så kommer de alltid att sitta på stolarna .
För att dela in eleverna i två grupper har Maria en viss strategi som hon vill använda. Innan lektionen börjar väljer hon en sekvens av st ettor och tvåor. När lektionen har börjat så går hon till varje elev och låter eleven som sitter på stol hamna i grupp . För att gruppindelningen ska bli vettig så finns det två krav som måste uppfylla:
- Maria vet inte hur många elever som kommer, men oavsett hur många som dyker upp så ska skillnaden i storlek mellan de två grupperna vara högst .
- Det finns par av stolar som har samma färg. Om det sitter elever på ett sådant par av stolar så måste de hamna i samma grupp.
Din uppgift är att, givet och de paren av stolar, hitta den sekvens som kommer först i alfabetisk ordning och uppfyller kraven ovan. Om det inte finns något giltigt ska ditt program skriva ut .
Med alfabetisk ordning menas att man jämför två sekvenser genom att primärt kolla på det första tecknet, om det är samma kollar man på det andra, o.s.v. T.ex. kommer sekvensen 1122 före 1211, men efter 1112.
입력
Den första raden innehåller två heltal , antalet stolar i klassrummet och , antalet stolpar med samma färg. Därefter följer rader som vardera består av två heltal, de par av stolar som har samma färg (1-indexerat). Varje stol har samma färg som högst en annan.
출력
Skriv ut en sekvens med ettor eller tvåor (utan mellanslag), alternativt om det saknas en giltig lösning.
예제
예제 1
7 3 2 3 4 5 6 7
1221122
예제 2
8 3 1 3 2 5 4 7
12122121
예제 3
6 3 1 3 5 2 4 6
-1