Problem description
Jak wszyscy wiemy, w Minecrafcie istnieją wioski. Steve bardzo lubi odwiedzać swoich znajomych wieśniaków, dlatego pomiędzy niektórymi parami wiosek zbuduje bezpośrednie połączenia kolejowe. Żadne dwa tory nie będą się krzyżować, ponieważ tam, gdzie jest to konieczne, powstaną tunele lub estakady. Innymi słowy, wioski wraz z połączeniami kolejowymi będą tworzyły graf.
Jedyną rzeczą, która cieszy Steve’a bardziej niż zdobywanie diamentów, jest widok kotów. Dlatego chce on, aby w każdej wiosce znajdowała się ich pewna liczba, przy czym muszą być spełnione następujące warunki:
Nie istnieje cykl wiosek taki, że w każdej wiosce na tym cyklu znajduje się taka sama liczba kotów.
Dla każdej pary różnych liczb kotów ci, cj występujących w pewnych wioskach, istnieje cykl, na którym:
- znajduje się co najmniej jedna wioska z liczbą kotów ci
- znajduje się co najmniej jedna wioska z liczbą kotów cj
- nie znajduje się żadna wioska z inną liczbą kotów.
Cyklem nazywamy ciąg różnych wiosek (W1,…,Wc) (3≤c) taki, że istnieje bezpośrednie połączenie kolejowe pomiędzy wioskami Wi i Wi + 1 dla każdego 1 ≤ i ≤ c − 1 oraz pomiędzy wioskami Wc i W1.
Steve nie jest jednak pewny, jak dokładnie będzie wyglądała sieć kolejowa, ani nawet ile wiosek będzie chciał w niej uwzględnić. Pomóż mu stwierdzić dla każdego planu, ile kotów powinno znajdować się w każdej wiosce, lub określić, że spełnienie jego wymagań nie jest możliwe.
Wejście
W pierwszym wierszu wejścia znajduje się liczba T oznaczająca liczbę planów sieci kolejowych.
W pierwszym wierszu opisu każdego planu znajdują się dwie liczby naturalne N oraz M, określające odpowiednio liczbę wiosek i połączeń kolejowych. W kolejnych M wierszach podane są dwie liczby naturalne Ai oraz Bi, oznaczające, że pomiędzy wioskami Ai oraz Bi istnieje bezpośrednie połączenie kolejowe.
Gwarantowane jest, że Ai ≠ Bi. Każda nieuporządkowana para (Ai,Bi) może wystąpić w planie co najwyżej raz.
Wyjście
Dla każdego planu, jeżeli nie istnieje poprawne przyporządkowanie
liczby kotów, wypisz pojedynczy wiersz zawierający słowo
NIE. W przeciwnym wypadku wypisz wiersz ze słowem
TAK oraz liczbę naturalną K, oznaczającą maksymalną liczbę
kotów w pewnej wiosce. W następnym wierszu wypisz N liczb naturalnych z zakresu od
1 do K, gdzie i-ta liczba oznacza liczbę kotów w
wiosce i, tak aby warunki
Steve’a były spełnione oraz aby dla każdego 1 ≤ x ≤ K istniała co
najmniej jedna wioska z dokładnie x kotami.
Jeżeli istnieje wiele poprawnych rozwiązań, wypisz dowolne z nich.
Ograniczenia
1 ≤ T ≤ 2 000, 2 ≤ N ≤ 1 000 000, 1 ≤ M ≤ 3 000 000, 1 ≤ Ai, Bi ≤ N. Suma N + M po wszystkich planach wynosi co najwyżej 4 000 000.
Podzadania
| Podzadanie | Warunki | Punkty |
|---|---|---|
| 1 | M = N − 1 oraz dla wszystkich 1 ≤ i ≤ N − 1, Ai ≤ i, Bi = i + 1 | 4 |
| 2 | $M=\frac{N(N-1)}{2}$ | 7 |
| 3 | N + M ≤ 100 | 27 |
| 4 | Suma N + M po wszystkich planach wynosi co najwyżej 200 000 | 26 |
| 5 | Brak dodatkowych ograniczeń | 36 |
Przykład
| Wejście | Wyjście | |
|
|