만찬

시간 제한1초메모리 제한128 MB

요약
완전 그래프의 각 간선에 만난 연도가 주어지고(기본값 2008), 정점을 2n/3 이하 크기의 두 부분으로 나눠 한쪽은 Y년 이전 간선만, 다른 쪽은 Y년 이후 간선만 갖도록 하는 최소 연도 Y를 구한다.
난이도

어려움10점 중 8점

유형
그래프, 정렬, 유니온 파인드, 구현
정답자
아직 제출이 없습니다

문제

분할과 조합론에 관한 학회(NCPC)의 참가자 수가 수백 명 규모로 늘어났다. 학회가 열리는 호텔에는 큰 식당이 두 곳 있지만, 각 식당은 혼자서 전체 참가자의 최대 3분의 2까지만 수용할 수 있다. 그래서 만찬을 위해 참가자들을 두 그룹으로 나누어야 한다.

주최 측은 참가자들이 즐거워할 만한 재치 있는 규칙으로 그룹을 나누고 싶어 한다. 즉, 다음을 만족하는 연도 YY와 참가자들을 두 그룹으로 나누는 분할이 존재하는가?

  • 첫 번째 그룹에 속한 모든 사람 쌍은 연도 YY 이전에 서로 처음 만났고,
  • 두 번째 그룹에 속한 모든 사람 쌍은 연도 YY 당해이거나 그 이후에 서로 처음 만났다.

또한 좌석 제한 때문에, 두 그룹 중 어느 쪽도 전체 nn명 중 2n/32n/3명을 초과해서는 안 된다.

이러한 분할이 가능한 가장 작은 연도 YY를 구하라.

입력

첫째 줄에 두 정수 nn과 cc가 주어진다. nn은 참가자 수(4≤n≤4004 \le n \le 400)이고, cc는 알려진 첫 만남의 수이다.

다음 cc개의 줄에는 각각 세 정수 aa, bb, yy (1≤a<b≤n1 \le a < b \le n, 1948≤y<20081948 \le y < 2008)가 주어지며, 이는 참가자 aa와 bb가 연도 yy에 서로 처음 만났음을 뜻한다.

어떤 참가자 쌍도 목록에 두 번 이상 나타나지 않는다. 목록에 없는 모든 쌍은 바로 지금, 즉 20082008년에 처음 만난 것으로 간주한다.

출력

참가자들을 두 그룹으로 나누되 어느 그룹도 2n/32n/3명을 초과하지 않으면서, 첫 번째 그룹의 모든 쌍은 연도 YY 이전에 만났고 두 번째 그룹의 모든 쌍은 연도 YY 당해이거나 그 이후에 만난, 그러한 분할이 가능한 가장 작은 연도 YY를 한 줄에 출력한다.

그러한 연도가 없으면 대신 Impossible을 출력한다.

예제2

  1. 예제 1

    입력
    6 3
    1 2 1970
    3 4 1980
    5 6 1990
    
    예상 출력
    1971
    
  2. 예제 2

    입력
    4 6
    1 2 1987
    2 3 1987
    1 3 1987
    2 4 1987
    1 4 1987
    3 4 1987
    
    예상 출력
    Impossible