#1142. 习惯

习惯

Background

Special for beginners, ^_^

Description

小明有很多习惯,比如看电影、听音乐、玩电脑游戏和足球等等。此外,他还有很多目标,因为不是每个习惯都有助于实现他的目标,他陷入了在目标和习惯之间做出选择的困境。

现在,我们将一个习惯对每个目标的影响定义为向量,向量的元素是整数,例如。向量(100,90,-10,80)表示它对目标1有100分的影响,对目标2有90分的影响、对目标3有-10分的影响和对目标4有80分的影响(正表示良好效果,负表示不良效果),每个目标的给定要求表示为整数。请帮助小明实现他的目标,并尽可能多地保持他的习惯。

Format

Input

第一行一个数字T,表示有T组输入样例(T不超过10),每组样例:

第1行:小明的目标数N(0<N<=20)

第2行:每个目标的要求(0<w<=1000)

第3行:小明的习惯数M(0<M<=16)

第4-M+4行:每行包含N个整数,第i个整数表示对第i个目标的影(-1000<=data<=1000)。

Output

对于每种情况输出是一行,每行包含:

小明可以保持的最大习惯数,以及小明可以保持的习惯的排序列表(从最小到最大)。如果有一组以上的习惯可以满足要求,请选择习惯数最少的一组。

如果无法实现小明的目标,请输出0。

Samples

1
4
100 200 300 400
3
100 100 400 500
100 -10 50  300
100 100 -50  -50
2 1 3