학교 탐방하기

입구를 루트로 하고 건물 1로 가는 고정 간선을 포함하는 신장 트리를 골라, 그 간선 중 오르막 간선 개수의 최솟값과 최댓값을 구한 뒤 (최댓값)^2 - (최솟값)^2을 출력한다.

보통6최소 신장 트리유니온 파인드그리디그래프면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

국희는 여름방학 동안 고등학생에게 학교 건물을 소개하는 일을 맡았다. 학교가 산비탈에 있어서 건물을 잇는 길은 오르막길이거나 내리막길이다. 국희는 입구를 기준으로 각 길이 오르막인지 내리막인지 미리 조사해 두었다.

건물에는 11번부터 NN번까지 번호를 붙였고, 입구에는 00번을 붙였다. 입구에서 뻗어 나온 길은 하나뿐이며 그 길은 11번 건물로 이어진다.

모든 건물을 소개하려면 입구와 NN개의 건물을 전부 잇는 길을 골라야 한다. 국희는 이 조건을 지키면서 고르는 길의 수를 최소로 한다. 장소가 모두 N+1N+1개이므로 고르는 길은 정확히 NN개이고, 고른 NN개의 길만으로 입구에서 모든 건물에 갈 수 있어야 한다.

피로도는 고른 길에 포함된 오르막길의 개수 kk로 정해지며 k2k^2이다. 오르막인지 내리막인지는 처음 조사한 결과로만 판단한다. 즉 내리막길을 내려갔다가 되돌아 올라오는 경우는 세지 않는다. 입구와 11번 건물을 잇는 길도 항상 고른 길에 들어가므로 피로도 계산에 포함된다.

고를 수 있는 조합 가운데 피로도가 가장 큰 조합과 가장 작은 조합이 있다. 두 피로도의 차이를 구하라.

입력

첫 줄에 건물의 개수 NN(1N10001 \le N \le 1000)과 건물 사이 길의 개수 MM(1MN(N1)/21 \le M \le N(N-1)/2)이 주어진다.

둘째 줄에는 입구와 11번 건물을 잇는 길이 AA BB CC 형식으로 주어진다. AA는 항상 00, BB는 항상 11이다.

이어지는 MM개의 줄에는 AA BB CC가 주어진다. AA번 건물과 BB번 건물을 잇는 길이 있다는 뜻이며(1A,BN1 \le A, B \le N, ABA \ne B), CC는 오르막길이면 00, 내리막길이면 11이다.

같은 두 건물을 잇는 길이 두 번 이상 주어지는 경우는 없다. 입구에서 모든 건물로 갈 수 있음이 보장된다.

출력

피로도가 가장 큰 조합과 가장 작은 조합의 피로도 차이를 한 줄에 출력한다.