安道尔是一个由一系列并排街区组成的横向城市。每个街区都有一个对应其类型的编号,多个街区可以属于同一种类型。
安迪是安道尔的承包商。根据经验,当安迪见到一位投资者时,他通常知道该投资者想购买哪种类型的街区。如果只展示该类型的街区,目标会非常明显,这可能会导致投资者讨价还价并压低价格。
安迪是一个聪明人,他会为投资者安排一次游览,游览可以是一个街区,也可以是多个连续的街区,并且游览中必须包含至少一个投资者想要的类型的街区。在游览结束后,安迪设法将该类型的所有街区卖给投资者。一次游览不能包含已经被卖掉的街区,否则其他业主会感到不满。
安迪有一系列投资者即将到来,他将按照他们到达的顺序与他们进行交易。他需要你在规划方面提供帮助。对于他想接待的每一位投资者,他想知道:
- 有多少种游览方式可以提供给他们。
- 在与该投资者完成交易后,还有多少种未来的游览方式可用。(记住,任何游览都不能包含已经卖出的房产)
输入格式
你的程序将在一个或多个测试用例上进行测试。输入的第一行是一个整数 $T$ ($1 \le T \le 100$)。
每个测试用例以一行开始,包含两个空格分隔的整数:
- $N$:可用城市街区的数量 ($0 \le N \le 100,000$)
- $Q$:投资者数量 ($1 \le Q \le 100,000$)
接下来有 2 行。第一行包含 $N$ 个空格分隔的整数,每个整数 $x$ 代表第 $i$ 个街区的类型。第二行包含 $Q$ 个空格分隔的整数,每个整数 $y$ 代表第 $j$ 位投资者感兴趣的街区类型 ($1 \le x, y \le 1,000,000,000$)。
输出格式
对于每个测试用例,打印 $Q$ 行,每行包含 2 个空格分隔的整数。第 $j$ 行包含 2 个空格分隔的整数,分别是第 $j$ 位投资者可能的游览次数,以及与该投资者交易后未来可能的游览次数。
样例
输入 1
1 2 2 1 2 1 2
输出 1
2 1 1 0
说明
在该测试用例中,安道尔有 2 个街区。起初,它们都是空闲的,所以安迪可以提供 3 种游览方式:
- 从街区 1 到街区 1 $(1,1)$
- 从街区 1 到街区 2 $(1,2)$
从街区 2 到街区 2 $(2,2)$
对类型 1 街区感兴趣的投资者到达。安迪可以为他安排两种游览方式 $(1,1)$ 和 $(1,2)$。卖掉街区 1 后,它不再可用,所以安迪现在只能安排游览 $(2,2)$,因此答案是 2 1。
- 对类型 2 街区感兴趣的投资者到达。安迪只能为他安排一种游览方式 $(2,2)$。交易完成后,由于所有街区都已售出,不再有可行的游览方式,因此答案是 1 0。