多米诺骨牌
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小利同学摆放了 \mathrm{n} 张多米诺骨牌,第 \mathrm{i} 张骨牌高为 \mathrm{h_i},摆放在位置 \mathrm{x_i}。该骨牌向后倒塌时会使位于 \mathrm{[x_i,h_i+x_i]} 区间(包含 \mathrm{x_i,h_i+x_i})的骨牌全部倒塌。

小利同学摆放完骨牌就开心的出去玩耍了。结果小金同学发现了这些骨牌,他想趁小利不在,选择不超过 \mathrm{m} 张骨牌并依次向后推倒,请算算最多会有多少张骨牌倒塌。

保证任意位置上至多存在一张骨牌。

输入描述:

第一行给出一个整数 \mathrm{T}(\mathrm{1 \le T \le 5\times 10^4}) ,表示数据组数。

每组数据第一行给出两个整数 \mathrm{n,m}(\mathrm{1 \le m \le n \le 2\times 10^5},\mathrm{\sum n \le 2\times 10^5}),分别表示骨牌总数与最多可推倒骨牌数。

第二行依次给出 \mathrm{n} 个整数,表示骨牌高度 \mathrm{h_i}(\mathrm{1 \le h_i \le 10^9})

第三行依次给出 \mathrm{n} 个不同整数,表示骨牌位置 \mathrm{x_i}(\mathrm{1 \le x_i \le 10^9})

输出描述:

每组测试数据输出一个整数,表示骨牌最多倒塌数。
示例1

输入

复制
3
6 1
1 1 1 3 2 1
4 3 2 7 9 11
6 2
1 1 1 3 2 1
4 3 2 7 9 11
5 4
1 4 1 1 2
1 2 3 6 8

输出

复制
3
6
5