#Lutece3404. 四角洲行动

四角洲行动

Description

Kagari 最近沉迷一个叫做四角洲行动的游戏,这游戏里面有一个摸金模式,具体内容就是在游戏地图上寻找各种材料,并放在背包和胸挂等装备的格子里带出。不同材料有不同的大小和价值,同样背包,胸挂,口袋等不同装备也有各自的容量。

当然在这个游戏里面,每个人都希望自己带出去的材料的总价值最大,但由于材料的大小和价值实在太多了,Kagari 实在算不出来带哪些材料才能获得最大的价值。具体的,这个游戏中总共有四种形状大小的格子:1x1, 1x2, 1x3, 2x2\texttt{1x1, 1x2, 1x3, 2x2},同样,材料的形状也是这四种。材料的放置有如下要求:

  • 材料两维的大小不能超过放入的格子的两维大小;
  • 不能拆分改变材料的形状,但可以旋转,即交换材料的两维大小;
  • 可以将多个材料放入同一个格子,但材料之间不能重叠;
  • 格子不需要装满。

例如,一个 1x2\texttt{1x2} 的材料和两个 1x1\texttt{1x1} 的材料就可以一起放入一个 2x2\texttt{2x2} 的格子,但此时这个格子不能放入更多的材料了。又例如一个 1x3\texttt{1x3} 的材料不能放入 2x2\texttt{2x2} 大小的格子内,两个 1x1\texttt{1x1} 的材料可以放入一个 1x3\texttt{1x3} 的格子,并且此时还可以再放入一个 1x1\texttt{1x1} 的材料,但不能放入其他大小的材料。当然具体的情况也可以参照上面的示例图。

现在 Kagari 已经统计好了她身上装备的各种格子的数量,以及已经捡到的所有材料的大小和价值,她希望写一个程序来计算能带出最大的价值。但由于 Kagari 是 2025 年 9 月才入学的新生,她还不会写代码,所以她希望你来帮忙。

Input

首先一个正整数 TT1T4001\le T\le 400),表示数据组数。

对于每组数据,第一行四个非负整数 a,b,c,da,b,c,da+b+c+d>0a+b+c+d>0),分别表示大小为 1x1, 1x2, 1x3, 2x2\texttt{1x1, 1x2, 1x3, 2x2} 的格子数量。

接下来四行,按照大小为 1x1, 1x2, 1x3, 2x2\texttt{1x1, 1x2, 1x3, 2x2} 的顺序描述每种材料,第 ii 行首先一个非负整数 kik_i0ki10000\le k_i\le 1000),表示这种大小的材料数量,接下来 kik_i 个正整数 vi,1,,vi,kiv_{i,1},\ldots,v_{i,k_i}1vi,j1×1041\le v_{i,j}\le 1\times 10^4)分别表示每个材料的价值。

保证所有数据的 aa 之和,bb 之和,cc 之和,dd 之和都不超过 100100

Output

对于每组数据,输出一行一个非负整数,表示能带出的最大价值。

Samples

3
1 2 1 0
1 3
1 10
1 6
0
3 0 2 0
9 2 9 10 3 1 1 2 10 7
3 14 10 14
1 21
0
0 1 2 0
2 10 6
1 2
3 24 27 9
2 8 16
19
71
67

Resources

The 23rd UESTC Programming Contest Final