He wants to build a spanning tree of this graph, such that for the first kk vertices the following condition is satisfied: the degree of a vertex with index ii does not exceed didi. Vertices from k+1k+1 to nn may have any degree.

William wants you to find the minimum weight of a spanning tree that satisfies all the conditions.

A spanning tree is a subset of edges of a graph that forms a tree on all nn vertices of the graph. The weight of a spanning tree is defined as the sum of weights of all the edges included in a spanning tree.

Input DIY Tree solution codeforces

The first line of input contains two integers nn, kk (2≤n≤502≤n≤50, 1≤k≤min(n−1,5)1≤k≤min(n−1,5)).

The second line contains kk integers d1,d2,…,dkd1,d2,…,dk (1≤di≤n1≤di≤n).

The ii-th of the next n −1n−1 lines contains n−in−i integers wi,i+1,wi,i+2,…,wi,nwi,i+1,wi,i+2,…,wi,n (1≤wi,j≤1001≤wi,j≤100): weights of edges (i,i+1),(i,i+2),…,(i,n)(i,i+1),(i,i+2),…,(i,n).