Kuningriigi jagamine | 프로그래밍의 벗 PivotOJ
PivotOJ

Kuningriigi jagamine

시간 제한: 1000ms메모리 제한: 1024MB출처: EIO 2019-20 finalBOJ 29926

문제

Imperaator Informaticus III on juba üsna vana ja varsti teise ilma minemas. Tal on suur impeerium, mis koosneb NN linnast ja N1N - 1 maanteest. Linnad on nummerdatud 1N1 \ldots N. Iga maantee ühendab omavahel kaks erinevat linna ja on teada, et igast linnast on võimalik mööda neid maanteid minna igasse teise linna.

Nii suurt impeeriumi on väga raske valitseda. Tõepoolest --- kuidas muidu oleks võimalik, et riigis on ainult N1N - 1 maanteed? Seetõttu otsustas imperaator riigi oma KK lapse vahel ära jagada, mitte pärandada esmasündinule nagu teised imperaatorid.

Loomulikult peab see jaotus olema õiglane ja praktiline. Seega otsustati, et:

  1. Iga laps peab saama sama arvu linnu.
  2. Iga lapse saadav tükk peab olema sidus --- kui mingi laps saab endale linnad uu ja vv, siis peab olema võimalik mööda maanteid liikuda linnast uu linna vv nii, et kõik tee peale jäävad linnad on samuti selle lapse omad.

Sina oled õukonna ülemarvutaja ja pead leidma võimaluse riik nii ära jagada või teatama, et see ei ole võimalik. Tõsi küll --- viimasel juhul võetakse sul tõenäoliselt pea maha.

입력

Faili esimesel real on linnade arv NN ja laste arv KK (1KN31051 \le K \le N \le 3 \cdot 10^5). Järgneb N1N - 1 rida, kus kirjeldatakse riigi teedevõrku. Igal real on kaks arvu uu ja vv (1uN1 \le u \le N, 1vN1 \le v \le N), mis näitavad et linnade uu ja vv vahel on maantee.

출력

Faili esimesele reale kirjutada 'SAAB', kui soovitud tükeldamine on võimalik, või 'EI SAA', kui ei ole. Kui tükeldamine on võimalik, väljastada teisele reale NN tühikutega eraldatud täisarvu, kus kohal ii olev arv on selle lapse number, kes saab linna ii. Lapsed on nummerdatud 1K1 \ldots K.

예제

예제 1

입력
9 3
2 8
1 9
5 6
4 5
8 7
8 1
1 6
3 5
출력
SAAB
1 3 2 2 2 1 3 3 1

예제 2

입력
8 4
1 2
2 3
1 4
4 5
1 6
6 7
7 8
출력
SAAB
1 2 2 3 3 1 4 4

예제 3

입력
4 3
1 2
2 4
1 3
출력
EI SAA

예제 4

입력
6 3
1 2
1 3
1 4
1 5
1 6
출력
EI SAA
코드를 제출하려면 로그인하세요.