U637905 三角洲高手的超能力 (Hard Version)

题目背景

*“如果能早点拥有这个能力,就不会堵桥失败了!”* 612寝室的三角洲高手在某一天发现自己觉醒了一个能力,他能一瞬间看出游戏中敌人的技术值,于是他利用自己的这个能力,在游戏中所向披靡。 这一天,李伟峰正在堵桥,他准备利用这个能力来决定要不要出击。

题目描述

(注:本题为困难版本) 李伟峰看穿了 $N$ 个敌人的技术值。 接下来李伟峰会进行 $K$ 次查询。每次查询会给出一个技术值 $d_i$。 你需要迅速回答: 有多少个**其他**敌人的技术值**严格大于**该技术值? 有多少个**其他**敌人的技术值**严格小于**该技术值?

输入格式

第一行包含两个整数 $N, K$ ($1 \le N, K \le 5 \times 10^6$)。 第二行包含 $N$ 个整数 $h_i$ ($1 \le h_i \le 10^7$)。 接下来 $K$ 行,每行一个整数 $d_i$($1 \le d_i \le 10^7$)。

输出格式

对于每次查询,在一行输出两个整数,中间用空格隔开:分别代表大于该值的人数,以及小于该值的人数。

说明/提示

**数据范围** * $1 \le N, K \le 5 \times 10^6$ * $1 \le h_i \le 10^7$