만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고리와 끈

시간 제한10초메모리 제한512 MB

요약
N개의 고리와 그 사이를 잇는 검은 줄이 주어질 때, 매달 고리를 골라 매달린 고리와 매달리지 않은 고리를 잇는 검은 줄의 수를 최대로 만드는 값을 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 그래프, 트리
정답자
아직 제출이 없습니다

문제

예술가 미사와 씨는 새 작품을 만들려고 한다. 미사와 씨는 금속 고리와 흑백 두 가지 색의 끈을 대량으로 준비했다.

미사와 씨는 서로 다른 두 고리를 어느 색이든 끈으로 묶는 일을 반복해서 작품을 만들 수 있다. 한 고리를 여러 고리와 이을 수도 있지만, 고리 쌍마다 끈은 많아야 한 개다.

미사와 씨는 작품을 만드는 김에 좋은 작품을 만들고 싶어 한다. 미사와 씨가 생각하는 '좋은 작품'은 다음과 같이 정의된다.

  • 고리 하나는 좋은 작품 하나다.
  • 좋은 작품 두 개를 준비했을 때, 두 작품에 각각 들어 있는 끈으로 이어지지 않은 고리 쌍을 모두 흰 끈으로 이은 것은 좋은 작품 하나다. (그림 1. 조작 1)
  • 좋은 작품의 흰 끈을 검은 끈으로, 검은 끈을 흰 끈으로 모두 바꾼 것은 좋은 작품이다. (그림 1. 조작 2)
  • 위에서 정의된 것만이 좋은 작품이다.

그림 1은 좋은 작품의 한 예다.

그림 1. 좋은 작품의 예

미사와 씨는 위 조건을 모두 만족하는 정성껏 만든 '좋은 작품'을 완성했다. 미사와 씨는 이 작품에 포함된 0개 이상의 고리를 골라 천장에 매달아 전시하기로 했다. 이때 검은 끈이 돋보이도록 전시하고 싶다. 즉, 천장에 매달린 고리와 그렇지 않은 고리 사이를 잇는 검은 끈의 개수가 최대가 되도록 하고 싶다.

이렇게 전시했을 때, 천장에 매달린 고리와 그렇지 않은 고리 사이를 잇는 검은 끈의 개수를 구하라.

입력

입력은 다음 형식으로 주어진다.

NN MM

u1u_1 v1v_1

...

uMu_M vMv_M

NN (1≤N≤50001 \leq N \leq 5000)은 작품에 포함된 고리의 개수다. MM (1≤M≤1000001 \leq M \leq 100000)은 작품에 포함된 검은 끈의 개수다.

uiu_i, viv_i (1≤ui,vi≤N1 \leq u_i, v_i \leq N)는 ii번째 검은 끈이 uiu_i번 고리와 viv_i번 고리를 잇고 있음을 뜻한다. 입력에 주어지지 않은 고리 쌍은 흰 끈으로 이어져 있다. 입력으로 주어지는 작품은 '좋은 작품'임이 보장된다.

출력

천장에 매달린 고리와 그렇지 않은 고리 사이를 잇는 검은 끈 개수의 최댓값을 출력하라.

예제3

  1. 예제 1

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

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

    입력
    5 8
    2 5
    5 4
    1 3
    1 5
    4 1
    2 4
    3 4
    3 2
    
    예상 출력
    6