矮人们在深矿的底层发现了多个新的金矿。矿床的位置(在矿底平面上)由一个点集 $P = \{p_1, \dots, p_m\}$ 给出,每个点都有一个对应的(估计)价值 $v_i$。然而,开采这些矿床并不容易,因为在某些区域过度钻探可能会导致不稳定,并有使整个矿井坍塌的风险。矿工、地质学家和工程师组成的协会共同确定了这些危险区域:它们构成了一个圆的集合 $C = \{c_1, \dots, c_n\}$。每个圆 $c_i$ 都有一个关联的最大容量 $f_i$,这是其中可以(安全)开采的矿床的最大数量。
你的任务是选择一个点子集 $A \subseteq P$,在不超过任何容量限制的前提下,使所选点的总(估计)价值最大化。形式化地说,对于任意 $i \in \{1, \dots, n\}$,令 $P_i$ 为包含在第 $i$ 个圆内的点集(即位于 $c_i$ 内部或边界上的点)。那么 $A$ 必须满足对于所有 $i$,都有 $|A \cap P_i| \le f_i$。
此外,保证 $C$ 可以划分为两个不相交的层级族 $C_1, C_2$。此处层级族定义为一组圆,其中每两个圆要么不相交,要么相互包含。这意味着在同一个层级族中,没有两个圆有公共点。
输入格式
输入的第一行包含两个整数 $N$ 和 $M$,分别表示圆的数量和点的数量。 接下来的 $N$ 行,每行描述一个圆。该描述包含四个整数 $x_i, y_i, r_i, f_i$,依次表示第 $i$ 个圆的圆心坐标、半径和容量。 接下来的 $M$ 行,每行描述一个点。该描述包含三个整数 $x_i, y_i, v_i$,依次表示点的坐标和价值。多个点可能具有相同的坐标。
数据范围
$1 \le N, M \le 300$ $-10^9 \le x_i, y_i \le 10^9$ $1 \le r_i, v_i \le 10^9$ $1 \le f_i \le 300$
输出格式
输出三行。 第一行包含一个整数,表示点集 $A$ 中点的最大总价值。 第二行包含一个整数,表示获得该价值的点集 $A$ 中的点数。 第三行包含该点集中的点的编号。点根据输入顺序编号,从 1 开始。点可以以任何顺序给出,但每个点最多出现一次。如果存在多个这样的集合,你可以输出其中任意一个。
样例
输入 1
5 5 3 5 2 2 4 10 4 2 5 10 2 3 5 5 5 2 14 4 2 3 6 11 3 3 8 5 4 6 20 9 5 4 14 5 1
输出 1
28 4 1 3 4 5
输入 2
3 2 4 7 2 2 4 8 1 1 8 7 1 1 4 7 5 4 8 4
输出 2
5 1 1