Problem description


Dużo kotów
(A)
Limit pamięci: 512 MB
Limit czasu: 10.00 s

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:

  1. Nie istnieje cykl wiosek taki, że w każdej wiosce na tym cyklu znajduje się taka sama liczba kotów.

  2. 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
2
5 8
1 2
1 3
1 4
2 3
5 1
4 3
4 5
5 2
4 2
1 2
3 4
TAK 2
1 1 2 1 2
TAK 1
1 1 1 1