编程题
### 问题描述 某地区有多个村庄,每个村庄会定期发布一些委托任务,需要冒险者的帮助。每位冒险者具有自己的能力值 $x$,表示其能够完成难度值小于等于 $x$ 的委托任务。冒险者完成一整轮的委托任务所需的代价等于其自身的能力值。 现在给定多位冒险者和各个村庄的委托任务难度,你需要确定冒险者的出勤方案,以使得完成所有委托任务的总代价最小。 ### 输入格式 第一行输入两个整数 $m$ 和 $n$ ,分别表示冒险者的数量和村庄的数量。 第二行 $m$ 个 $int$ 类型整数,代表每位冒险者的能力值。 接下来 $n$ 行,每行代表一个村庄,每行第一个整数 $k$ 表示该村庄的委托数量,此后 $k$ 个类型整数表示该村庄的每个委托任务的难度值。 ### 输出格式 在一行中输出一个整数,表示完成所有委托所需的最小总代价。如果不能完成所有的委托,则直接输出 $-1$。 ### 输入样例 ``` 3 4 2 9 6 2 3 7 1 5 3 2 2 3 3 1 1 1 ``` ### 输出样例 ``` 17 ``` ### 样例解释 一种可行的代价最小的执行方案如下。 | | 第一轮 | 第二轮 | 第三轮 | | :--------------: | :----: | :----: | :----: | | 出勤冒险者能力值 | 9 | 6 | 2 | | 村庄1委托难度值 | 7 | 6 | \ | | 村庄2委托难度值 | 5 | \ | \ | | 村庄3委托难度值 | 3 | 2 | 2 | | 村庄4委托难度值 | 1 | 1 | 1 | 将三轮任务的代价求和 $9+6+2$ 得到答案 $17$。 ### 数据范围 $0