몰로코의 League of Overwatch (쉬움)

충돌 그래프가 주어질 때, 각 충돌 쌍이 서로 다른 그룹에 속하도록 정점을 공집합이 아닌 두 그룹으로 나눌 수 있는지 판정한다.

쉬움3그래프BFS면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

몰로코 직원들은 가끔 두 그룹으로 나뉘어 League of Overwatch 5판 3선승제 경기를 한다. 직원 중에는 예전에 듀오로 함께 플레이한 하드코어 게이머 짝이 있어서, 회사는 이번 행사에서 그런 짝을 서로 다른 그룹으로 갈라놓기로 했다. 초보자도 부담 없이 즐기게 하려는 것이다.

몰로코의 직원은 nn명이고, 1번부터 nn번까지 번호가 붙어 있다.

과거에 듀오로 게임을 한 짝 (fi,si)(f_i, s_i)mm개 알려져 있다. 각 짝의 두 직원은 반드시 서로 다른 그룹에 들어가야 한다.

nn명을 비어 있지 않은 두 그룹으로 나누어, 모든 직원이 정확히 한 그룹에만 속하고 어떤 짝 (fi,si)(f_i, s_i)도 같은 그룹에 함께 있지 않게 만들 수 있는지 판정하라.

입력

첫째 줄에 정수 nnmm이 주어진다. (1n161 \le n \le 16, 1m1501 \le m \le 150)

다음 mm개 줄에는 각각 정수 fif_isis_i가 주어진다. (1fi,sin1 \le f_i, s_i \le n) 모든 ii에 대해 fisif_i \ne s_i임이 보장된다. 같은 짝이 여러 번 주어질 수 있다.

출력

첫째 줄에 POSSIBLE 또는 IMPOSSIBLE을 출력한다.

힌트

두 번째 예제에서는 {2}\{2\}{1,3}\{1, 3\}으로 나누면 모든 조건을 만족한다.