求大佬解答!!!
2、发送快递(express)
[问题描述]
小华有n本不同的书(编号为1, 2, 3, ..... n),重量分别是a1、a2 .....an公斤(重量可以相同)。他想把这些书以快递的方式发给自己的好朋友,要求每个包裹的重量不能超过m公斤(可以等于m公斤),并且小华想把其中一些书(一组书,用书的编号给出来)放在一个包裹里,应该如何打包才能使得快递件数最少。
[输入]
第一行,包含两个整数n、m,之间用一个空格隔开,分别表示书的数量和快递包裹的最大重量。
第二行n个整数ai,表示n本书的重量,每两个整数之间用一个空格隔开。
第三行一个整数s,表示一共有s组书(每组书需要打包在一起)。如果s=0,则无此限制。数据保证每组书的重量不超过m。
第四行开始共s行,每行若干个整数,表示必须放在一个包裹里的书的编号,每两个整数之间用一个空格隔开。
[输出]
输出一行,一个整数,即快递最少件数。
[样例1]
输入
5 10
8 4 8 2 5
0
输出
3
[样例2]
输入
10 80
49 11 44 18 28 24 19 10 27 29
2
1 5
4 8 2
输出
4
[数据范围和限制]
对于40%的数据,1<=n<=10^5,1<=ai<=100,s=0,m的值保证有解。
对于100%的数据,1<=n<=10^5,1<=ai<=100,0<=s<=100,m的值保证有解。