정점이 N개이고, 간선이 M개인 단방향 그래프가 주어집니다. 간선은 입력에서 주어지는 순서대로 1번부터 M번까지의 번호가 붙어 있습니다.
소영이는 많은 정점 쌍들을 최단 거리로 빠르게 연결하고 있는 간선들이 기특하다는 생각이 들었습니다. 그래서 간선들에 각각 점수를 매긴 뒤, 가장 점수가 높은 간선들에게 최고의 간선 상을 수여하려고 합니다. 간선의 점수는 아래와 같은 방식으로 계산합니다.
소영이는 점수가 같은 간선이 여러 개가 있다면, 최고 점수를 기록한 모든 간선들에게 상을 주려고 합니다. 어떤 간선들이 최고의 간선 상을 받게 될지를 구해봅시다.
첫 번째 줄에는 두 개의 정수 N과 M이 공백으로 구분되어 주어집니다. (2≤N≤2×103,1≤M≤min(N×(N−1), 5×103))
다음 M개의 줄에는 i 번째 간선의 시작 정점 u_i와 도착 정점 v_i, 그리고 간선의 길이 w_i가 공백으로 구분되어 주어집니다. 같은 정점 쌍을 연결하는 서로 다른 간선이 존재하지 않고, 시작 정점과 도착 정점이 같은 간선은 주어지지 않습니다. (1≤u_i,v_i≤N,u_i=v_i,1≤w_i≤109)
첫 번째 줄에는 상을 받게 될 간선의 수를 출력합니다.
두 번째 줄에는 상을 받게 될 간선의 번호를 작은 것부터 순서대로 공백으로 구분하여 출력합니다.