Роздiл майна
У Сема i Юри є n кошикiв з яблуками. Всього є m видiв яблук. В i-му кошику є c[i]
яблук, вид j-го яблука в i-му кошику — a[ij]
.
Сем i Юра посварились мiж собою i хочуть подiлити кошики так, щоб:
Кожен отримав хоча б один кошик.
Не iснувало жодного виду яблука, яке б було i в Сема, i в Юри.
Допоможiть їм подiлити кошики.
Вхідні дані
Перший рядок мiстить два цiлi числа n та m (2 ⩽ n ⩽ 10^5
, 1 ⩽ m ⩽ 10^5
) — кiлькiсть кошикiв з яблуками та види яблук вiдповiдно.
Наступнi 2n рядкiв мiстять описи кошикiв. Опис кожного кошика у двох рядках. Перший рядокмiстить одне цiле число c[i]
(1 ⩽ c[i]
⩽ 2 ∙ 10^5
). Другий рядок мiстить ci цiлих чисел a[i1]
; a[i2]
; : : : ; a[ici]
(1 ⩽ a[ij]
⩽ m) — вид яблука.
Гарантується, що сума всiх c[i]
не перевищує 2 ∙ 10^5
.
Вихідні дані
Виведiть «YES», якщо можливо роздiлити кошики, або «NO» у протилежному випадку.
Якщо вiдповiдь «YES», також у другому рядку виведiть n цiлих чисел 1 або 2. Якщо i-те число рiвне 1, то i-ий кошик повинен дiстатись Сему, якщо 2 — Юрi.
Якщо iснує декiлька можливих вiдповiдей, виведiть будь-яку.