P1168

80人环游世界

80人环游世界

想必大家都看过成龙主演的《8080 天环游世界》,其中紧张刺激的打斗场面一定给你留下了深刻的印象。现在有一个由 8080 人组成的团体,也想进行一次环球旅行。

他们打算兵分多路,游遍每一个国家。由于他们主要分布在东方,因此旅行时只会向西方前进。按照从东到西的顺序,将所有国家依次编号为 1,2,…,N1,2,\ldots,N。若第 ii 个人的游历路线为 P1,P2,…,PkP_1,P_2,\ldots,P_k,其中 0≤k≤N0\le k\le N,则必须满足:

P1<P2<⋯<Pk。P_1<P_2<\cdots<P_k。

每个国家都有一个正整数吸引力 ViV_i。ViV_i 越大,表示该国越有吸引力,同时也表示有且仅有 ViV_i 个人会经过该国。

为了节省时间,他们打算乘坐飞机完成环球旅行;为了节省费用,他们希望所有人的机票总费用最小。然而在出发前,有些人临阵脱逃,最终只剩下 MM 个人参加旅行。

请计算完成旅行所需的最少机票总费用。

输入格式

第一行输入两个正整数 N,MN,M,分别表示国家数量和参加旅行的人数。

第二行输入 NN 个不大于 MM 的正整数 V1,V2,…,VNV_1,V_2,\ldots,V_N,其中 ViV_i 表示有且仅有 ViV_i 个人会经过第 ii 个国家。

接下来输入 N−1N-1 行机票费用。第 ii 行包含 N−iN-i 个整数,其中第 jj 个整数 Ci,i+jC_{i,i+j} 表示从第 ii 个国家飞往第 i+ji+j 个国家的机票费用。

对于每个 Ci,jC_{i,j},其值为 −1-1 或非负整数。若 Ci,j=−1C_{i,j}=-1,表示这两个国家之间没有对应的航班。

输出格式

输出一行一个整数,表示最少的机票总费用。

样例输入

6 3
2 1 3 1 2 1
2 6 8 5 0
8 2 4 1
6 1 0
4 -1
4

样例输出

27

数据范围

  • 1≤N≤1001\le N\le 100;
  • 1≤M≤791\le M\le 79;
  • 对于所有 1≤i<j≤N1\le i<j\le N,Ci,j=−1C_{i,j}=-1 或 0≤Ci,j≤1040\le C_{i,j}\le 10^4;
  • 保证所有测试数据都至少存在一种合法的路线安排。

来源与许可

本题题面与测试数据整理自 BZOJ。

样例 1

输入

6 3
2 1 3 1 2 1
2 6 8 5 0
8 2 4 1
6 1 0
4 -1
4

输出

27