编程题
### 问题描述
小齐准备搬家了,他希望找到一个最佳的地方建立新的农场,以最小化他每天需要行走的距离。
小齐计划搬到的地区有 $N$ 个城镇($1 \leq N \leq 10,000$)。有 $M$ 条双向道路($1 \leq M \leq 50,000$)连接着某些城镇。通过一些道路,所有城镇之间都是可达的。小齐需要你的帮助,选择一个最佳的城镇作为他新农场的所在地。
在 $K$ 个城镇($1 \leq K \leq 5$)有市场,小齐每天都想要去拜访这些市场。具体而言,他计划每天离开新农场,拜访这 $K$ 个有市场的城镇,然后返回农场。小齐可以按任意顺序拜访这些市场。在选择建立新农场的城镇时,小齐希望只从那些没有市场的 $N-K$ 个城镇中选择,因为这些城镇的房价较低。
请帮助小齐计算他在每天的行程中需要行走的最小距离,如果他在一个最优的位置建立农场并且选择了尽可能聪明的市场访问计划。
### 输入格式
第一行:三个用空格分隔的整数 $N$、$M$ 和 $K$。
接下来 $K$ 行:第 $i$ 行包含一个整数,表示第 $i$ 个市场所在的城镇。每个市场位于不同的城镇。
接下来 $M$ 行:每行包含三个用空格分隔的整数 $i$、$j$($1 \leq i, j \leq N$) 和 $L$($1 \leq L \leq 1000$),表示从城镇 $i$ 到城镇 $j$ 有一条长度为 $L$ 的道路。
### 输出格式
第一行:如果小齐在一个最优的位置建立农场,他在每天的行程中需要行走的最小距离。
### 样例输入
```
5 6 3
1
2
3
1 2 1
1 5 2
3 2 3
3 4 5
4 2 7
4 5 10
```
### 样例输出
```
12
```
### 评测数据规模
$1 \leq N \leq 10,000$,$1 \leq M \leq 50,000$,$1 \leq K \leq 5$。