#A0046. 发送快递

发送快递

题目描述

小华有 nn 本不同的书(编号为123.....n1,2,3,.....,n),重量分别是a1a2ana_1、a_2、……、a_n 公斤(重量可以相同)。他想把这些书以快递的方式发给自己的好朋友,要求每个包裹的重量不能超过 mm 公斤(可以等于 mm 公斤),并且小华想把其中一些书(一组书,用书的编号给出来)放在一个包裹里,应该如何打包才能使得快递件数最少。

输入描述 第一行,包含两个整数 nmn、m,之间用一个空格隔开,分别表示书的数量和快递包裹的最大重量。 第二行 nn 个整数 aia_i,表示 nn 本书的重量,每两个整数之间用一个空格隔开。 第三行一个整数ss,表示一共有 ss 组书(每组书需要打包在一起)。如果s=0s=0,则无此限制。数据保证每组书的重量不超过mm。 第四行开始共 ss 行,每行若干个整数,表示必须放在一个包裹里的书编号,每两个整数之间用一个空格隔开。

输出描述

输出文件一行,一个整数,即快递最少件数。

输入样例1

5 10
8 4 8 2 5
0

输出样例1

3

输入输出样例1 说明

11 本和第 44 本打包,重量是 1010 公斤。第 22 本和第 55 本打包,重量是 99 公斤。第 33 本单独打包,重量是 88 公斤。所以一共 33 件快递。

输入样例2

10 80
49 11 44 18 28 24 19 10 27 29
2
1 5
4 8 2

输出样例2

4

输入输出样例2 说明

11 本和第 55 本打包,第 22 本、第 44 本、第 88 本和第 1010 本打包,第 33 本和第 77 本打包,第 66 本和第 99 本打包。所以一共 44 件快递。

数据范围

对于40%40\%的数据,1n1051ai100s=0m1 ≤ n ≤ 10^5,1 ≤ a_i ≤ 100,s=0,m 的值保证有解。 对于100%100\%的数据,1n1051ai1000s100m1 ≤ n ≤ 10^5,1 ≤ a_i ≤ 100,0 ≤ s ≤ 100,m的值保证有解。