아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Дистрикты

면접 대비

시간 제한2초메모리 제한1024 MB

요약
같은 구역에 살지 않는 참가자 세 명씩 주어질 때, 구역 수가 최소가 되도록 각 참가자의 구역을 정한다.
난이도

보통10점 중 7점

유형
그래프, 백트래킹, 비트 연산, 조합론
정답자
아직 제출이 없습니다

문제

Как известно, Панем разбит на несколько дистриктов. Дистрикт --- это административно-территориальная единица.

Для проведения Голодных игр из каждого дистрикта выбираются несколько человек.

Наступила пора новых Голодных игр. В них примут участие nn человек, каждый из которых проживает в некотором дистрикте. Но произошло непоправимое --- был утерян список, в котором для каждого человека был известен дистрикт, в котором он проживает. Осталась лишь следующая информация: mm троек чисел (x_i,y_i,z_ix\_i, y\_i, z\_i) --- каждая тройка означает, что участники с номерами x_ix\_i, y_iy\_i и z_iz\_i не проживают в одном дистрикте.

От вас требуется восстановить дистрикты участников, чтобы количество различных дистриктов было минимально.

입력

В первой строке содержатся два целых числа n,mn, m (1≤n≤161 \le n \le 16, 0≤m≤n30 \le m \le n^3).

В следующих mm строках содержатся тройки различных целых чисел x_ix\_i y_iy\_i z_iz\_i, (1≤x_i,y_i,z_i≤n1 \le x\_i, y\_i, z\_i \le n, x_i≠y_i,y_i≠z_i,x_i≠z_ix\_i \neq y\_i, y\_i \neq z\_i, x\_i \neq z\_i).

출력

В первой строке выведите натуральное число kk --- минимальное количество различных дистриктов, в которых проживают все участники.

В следующей строке выведите nn чисел a_ia\_i (1≤a_i≤k1 \le a\_i \le k) --- номер дистрикта, в котором проживает ii-й участник. Если существует несколько ответов --- выведите любой.

예제3

  1. 예제 1

    입력
    5 1
    1 2 3
    
    예상 출력
    2
    2 1 1 1 1
    
  2. 예제 2

    입력
    6 5
    4 1 2
    2 3 5
    2 4 5
    4 5 6
    1 2 6
    
    예상 출력
    2
    1 2 1 2 1 1
    
  3. 예제 3

    입력
    3 0
    
    예상 출력
    1
    1 1 1