시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 1024 MB 30 22 21 72.414%

문제

2019년에 연세대학교 최적화 연구실에서는 갑자기 특정 문제에 Parity Constraint(홀짝 제약)을 넣은 상태로 문제를 푸는 것이 유행한 적이 있었고, 졸업하신 김강산 선배도 Parity Constraint 관련 논문을 작성하셨다. 이를 기념하기 위해서 국렬이는 연세대학교 프로그래밍 경진대회에 Parity Constraint 문제를 내기로 하였다.

정점이 N개, 비용이 있는 무방향 간선이 M개 있는 그래프가 주어진다. 모든 정점에는 1부터 N까지 번호가 매겨져 있다. 임의의 정점을 선택했을 때 다른 정점으로 가는 경로는 항상 존재하며, 서로 다른 두 정점 사이에는 최대 한 개의 간선이 존재한다.

스패닝 트리는 주어진 그래프의 부분 그래프들 중 트리인 것을 의미한다. 스패닝 트리의 가능한 비용의 합 중 홀수인 최솟값, 짝수인 최솟값을 구하여라.

입력

다음과 같이 입력이 주어진다.

N M
u1 v1 w1
. . .
uM vM wM

출력

스패닝 트리의 가능한 비용의 합 중 홀수인 최솟값, 짝수인 최솟값을 구하여라. 만약에 해당하는 트리가 존재하지 않는 경우 -1을 출력한다.

제한

  • 2 ≤ N ≤ 100,000.
  • 1 ≤ M ≤ 300,000.
  • 1 ≤ uivi ≤ Nui ≠ vi. uivii번째 간선의 양 끝점을 의미한다.
  • 1 ≤ wi ≤ 1,000,000,000. wi는 i번째 간선의 비용을 의미한다.
  • 입력에 주어진 수들은 전부 정수다.

예제 입력 1

2 1
1 2 1

예제 출력 1

1 -1

예제 입력 2

3 2
1 2 3
2 3 3

예제 출력 2

-1 6

예제 입력 3

3 3
1 2 3
2 3 3
3 1 2

예제 출력 3

5 6

예제 입력 4

11 23
10 5 832262475
4 10 301084042
4 1 799372953
4 8 689519369
5 2 873313484
6 4 46186948
8 9 388003582
2 7 422044725
5 3 299817881
11 8 779478862
11 5 416526224
11 6 125285000
1 3 566784345
10 6 126434276
11 2 546492450
5 9 914379895
3 7 540663871
7 8 737058872
6 8 932017467
1 9 788517162
11 3 96034563
8 1 113947346
2 10 117057067

예제 출력 4

2301595733 2418304076