다각형 꼭짓점에 방마다 모든 맛이 닿도록 최대한 많은 맛을 칠하고 사전 순으로 가장 앞선 배치를 출력합니다.
보통6완전 탐색그래프아직 제출이 없습니다시간 제한5초메모리 제한512 MB새끼 고양이를 여러 마리 입양해서 고양이 집을 지으려고 한다. 집의 바깥 윤곽은 꼭짓점이 N개인 볼록 다각형이고, 내부는 꼭짓점끼리 직선으로 잇는 벽 M개로 여러 개의 방으로 나뉜다. 두 벽이 꼭짓점이 아닌 곳에서 만나는 일은 없지만, 한 꼭짓점에 여러 벽이 닿을 수는 있다.
꼭짓점마다 캣닢으로 기둥을 하나씩 세운다. 고양이는 자기가 있는 방에 닿아 있는 기둥이라면 무엇이든 가지고 놀 수 있다.
캣닢은 맛이 여러 가지다. 기둥 하나에는 맛을 한 가지만 쓰지만, 기둥마다 다른 맛을 써도 된다. 문제는 어떤 방에서 집에 쓰인 맛 전부에 닿을 수 없으면 그 방의 고양이가 서운해한다는 점이다.
꼭짓점마다 캣닢 맛을 정해서 (가) 모든 방에서 모든 맛에 닿을 수 있고, (나) 쓰는 맛의 가짓수가 최대가 되도록 하라.
아래 그림은 팔각형 집에 세 가지 맛(빨강, 초록, 파랑 점)을 배치해 모든 방의 고양이를 만족시킨 예다. 위쪽 벽의 왼쪽 끝에서 시작해 시계 방향으로 초록, 파랑, 빨강, 빨강, 파랑, 초록, 파랑, 빨강이다. 조건을 만족하는 배치는 여러 개일 수 있고, 그림은 그중 하나다.

첫 줄에 테스트 케이스의 수 T가 주어진다. 이어서 테스트 케이스가 T개 주어진다.
각 테스트 케이스는 세 줄이다. 첫 줄에 꼭짓점의 수 N과 내부 벽의 수 M이 공백으로 구분되어 주어진다. 둘째 줄에는 각 벽이 시작하는 꼭짓점 U1,U2,…,UM이 공백으로 구분되어 주어진다. 셋째 줄에는 각 벽이 끝나는 꼭짓점 V1,V2,…,VM이 같은 방식으로 주어진다.
꼭짓점에 시계 방향으로 1부터 N까지 번호를 붙였을 때, i번째 벽은 꼭짓점 Ui와 Vi를 잇는다.
각 테스트 케이스마다 두 줄을 출력한다.
첫 줄에는 Case #x: C를 출력한다. x는 테스트 케이스 번호이고, C는 쓸 수 있는 캣닢 맛의 최대 가짓수다.
둘째 줄에는 꼭짓점 i에 배정한 맛의 번호 yi를 공백으로 구분해 N개 출력한다. 각 yi는 1 이상 C 이하의 정수다.
맛 C가지를 모두 쓰면서 조건을 만족하는 배정이 여러 개면, 수열 y1 y2 … yN이 사전순으로 가장 앞서는 것 하나만 출력한다.