Statement
지문 언어
정점이 개인 가중치 방향 그래프가 주어진다. 정점 에서 정점 로 가는 간선의 가중치는 이다. 이면 해당 간선은 없다.
부터 까지의 정점을 어떤 순서로 나열한 뒤, 나열한 순서대로 간선을 따라 이동하고 마지막 정점에서 첫 정점으로 돌아오려 한다. 이때 모든 이동에 해당하는 간선이 존재해야 한다. 가능한 순서 중 지나간 간선의 가중치 합이 최소인 것을 아무거나 하나 구하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
각 케이스는 다음과 같은 형식으로 주어진다.
Output
각 케이스마다 조건을 만족하는 순서가 없으면 만 출력한다.
그렇지 않으면 첫째 줄에 최소 총 가중치를 출력하고, 둘째 줄에 정점을 방문하는 순서 을 공백으로 구분하여 출력한다. 은 부터 까지의 순열이며, 에서 로 돌아가는 간선도 총 가중치에 포함된다. 가능한 답이 여러 개라면 아무거나 출력해도 된다.
Constraints
- .
- .
- 이며, 은 간선이 없음을 뜻한다.
- 이다.
- 모든 케이스에 대한 의 합은 이하이다.
- 모든 케이스에 대한 의 합은 이하이다.
Subtasks
Samples
입력
2
3
0 2 -1
-1 0 3
4 -1 0
3
0 1 -1
-1 0 1
-1 -1 0
출력
9
1 2 3
-1