蜗蜗有一个神奇的口袋,口袋可以装下体积总和为 m
的宝石。
一共有 n+1
种不同的宝石。第 i (1≤i≤n)
种宝石一共有 ai
颗,每一颗的体积都是 bi
(保证 bi=2x
,其中 x
是一个正整数,2x
表示 x
个 2
的乘积,比如说 24=2×2×2×2
)。第 n+1
种宝石有无限多颗,每一颗的体积都是 1
。
现在蜗蜗想用数量最少的宝石装满口袋,请求出蜗蜗最少要使用多少颗宝石。
输入格式
第一行一个正整数 test
表示数据组数。
对于每组数据,第一行两个整数 n,m
。接下来 n
行,每行两个整数 ai,bi
分别表示一种宝石的数量和体积。
输出格式
对于每组数据,输出一行一个整数,表示蜗蜗最少要使用多少颗宝石。
样例输入
2
2 7
1 2
1 4
2 6
1 2
1 4
样例输出
3
2
数据规模
对于 30%
的数据,保证所有的 ai=1
。
对于 100%
的数据,保证 1≤test≤105,1≤n≤31,0≤m<231,1≤ai<231,2≤bi<231
,bi
已经从小到大排好序了并且两两不同。