친구 팰린드롬

친구 수가 20명 이하인 친구 관계 그래프가 주어질 때, 가운데 한 명을 제외한 모든 학생이 친구와 짝을 이루는 회문 모양의 줄에서 세울 수 있는 최대 인원을 구한다.

보통6동적 계획법비트 연산그래프완전 탐색면접 대비아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

초등학생 재홍이는 이번 봄 학예회에서 지휘를 맡고, 반 친구들이 춤을 추기로 했다. 춤은 이렇게 진행된다. 무대에 오른 친구들이 일렬로 서서 각자 막춤을 추다가, 줄의 가운데를 기준으로 왼쪽에 있는 친구와 오른쪽에 있는 친구가 두 손을 마주잡고 함께 춤을 춘다. 5명이 일렬로 서 있었다면 첫 번째 친구와 다섯 번째 친구가 짝이 되고, 두 번째 친구와 네 번째 친구가 짝이 된다. 세 번째 친구는 함께 출 친구가 없으므로 혼자 로봇 댄스를 춘다.

반 친구들은 모두 자신과 친한 친구하고만 춤을 추고 싶어한다. 재홍이는 학예회를 크게 열고 싶어서 무대에 최대한 많은 친구를 세우려 한다. 친구 관계가 주어질 때 무대에 올릴 수 있는 친구 수의 최댓값을 구해서 재홍이에게 알려주자. 친구는 출석번호로 나타내며 번호는 1부터 NN까지다. 각 친구의 출석번호는 하나뿐이다.

AABB가 친한 친구이고 BBCC가 친한 친구라고 해서 AACC가 반드시 친한 친구인 것은 아니다. 로봇 댄스를 추는 친구를 뺀 나머지 친구는 모두 자신과 친한 친구와 짝을 이뤄 춤을 춰야 한다. 또 반 친구는 누구나 로봇 댄스를 출 수 있다.

입력

첫째 줄에 반 친구 수 NN과 친구 관계 수 MM이 주어진다 (2N202 \le N \le 20, 0Mmin((N2N)/2, 50)0 \le M \le \min((N^2 - N)/2,\ 50)). 재홍이는 NN에 들어가지 않는다. 둘째 줄부터 MM개의 줄에 걸쳐 친한 친구 관계가 출석번호 uu, vv로 주어진다. uuvv는 서로 다르고, uuvv가 친한 친구면 vvuu도 친한 친구다.

같은 관계가 두 번 이상 주어지지 않는다. 1 2가 이미 주어졌다면 1 2나 2 1은 다시 들어오지 않는다.

출력

무대에 올릴 수 있는 친구 수의 최댓값을 출력한다.