彩虹岛套娃
题号:NC14674
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

俄罗斯套娃是俄罗斯特产的木制玩具,一般由多个一样图案的空心木娃娃一个套一个组成,最多可达十多个,通常为圆柱形,底部平坦可以直立。颜色有红色,蓝色,绿色,紫色等。最普通的图案是一个穿着俄罗斯民族服装的姑娘,叫做“玛特罗什卡”,这也成为这种娃娃的通称。

彩虹岛也有自己的套娃,不过与俄罗斯套娃有所不同,其组成规则如下:
1. 空心木娃娃只有正方体与球两种形状。
2. 正方体娃娃与球体娃娃可以相互套,也可以相同形状之间套。
3. 当两形状相切的时候使能够互相嵌套的,比如半径为2的球体能套在边长为4的正方体中。
4. 所有木娃娃的厚度可以忽略不计。
现在有𝑛个正方体和𝑚个球形的木娃娃,其中第𝑖个正方体娃娃边长为𝑎𝑖,第𝑗个球形娃娃半径为𝑟𝑗。用这些娃娃组成一个套娃,最多有几层?
数据保证所有正方体边长不相同,所有的圆半径不相同。

输入描述:

输入第一行为一个整数𝑇(1 ≤ 𝑇 ≤ 25),表示一共有𝑇组测试数据。
对于每组测试数据:
第一行有两个整数𝑛,𝑚(1 ≤ 𝑛,𝑚 ≤ 105),分别表示正方体和球体的木娃娃数。
第二行有𝑛个整数,其中第𝑖个整数𝑎𝑖(1 ≤ 𝑎𝑖 ≤ 109)代表第𝑖个正方体娃娃的边长。
第二行有𝑚个整数,其中第𝑖个整数𝑟𝑖(1 ≤ 𝑟𝑖 ≤ 109)代表第𝑖个球形娃娃的半径。

输出描述:

输出一个正整数𝑥,表示组成的套娃的层数。
示例1

输入

复制
1
3 4
2 4 6
7 5 3 1

输出

复制
5

说明

对于样例,套娃分别由半径为7的球形、半径为5的球形、边长为4的正方体、边长为2的正方体、半径为1 的球形的木娃娃组成,一共5层。