This problem is actually a subproblem of problem G from the same contest.
There are $n$ candies in a candy box. The type of the $i$-th candy is $a_i$ ($1 \le a_i \le n$).
You have to prepare a gift using some of these candies with the following restriction: the numbers of candies of each type presented in a gift should be all distinct (i. e. for example, a gift having two candies of type $1$ and two candies of type $2$ is bad). 
It is possible that multiple types of candies are completely absent from the gift. It is also possible that not all candies of some types will be taken to a gift.
Your task is to find out the maximum possible size of the single gift you can prepare using the candies you have.
You have to answer $q$ independent queries.
If you are Python programmer, consider using PyPy instead of Python when you submit your code.
-----Input-----
The first line of the input contains one integer $q$ ($1 \le q \le 2 \cdot 10^5$) — the number of queries. Each query is represented by two lines.
The first line of each query contains one integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the number of candies.
The second line of each query contains $n$ integers $a_1, a_2, \dots, a_n$ ($1 \le a_i \le n$), where $a_i$ is the type of the $i$-th candy in the box.
It is guaranteed that the sum of $n$ over all queries does not exceed $2 \cdot 10^5$.
-----Output-----
For each query print one integer — the maximum possible size of the single gift you can compose using candies you got in this query with the restriction described in the problem statement.
-----Example-----
Input
3
8
1 4 8 4 5 6 3 8
16
2 1 3 3 4 3 4 4 1 3 2 2 2 4 1 1
9
2 2 4 4 4 7 7 7 7
Output
3
10
9
-----Note-----
In the first query, you can prepare a gift with two candies of type $8$ and one candy of type $5$, totalling to $3$ candies.
Note that this is not the only possible solution — taking two candies of type $4$ and one candy of type $6$ is also valid.
q = int(input())

for _ in range(q):

	n = int(input())
	a = sorted(list(map(int, input().split())))

	s = []
	last = a[0]
	count = 1
	for i in range(1, n):
		if a[i] != last:
			s.append(count)
			last = a[i]
			count = 0
		count += 1
	s.append(count)

	s.sort()

	answer = s[-1]

	for i in range(len(s) - 2, -1, -1):
		if s[i] >= s[i + 1]:
			s[i] = s[i + 1] - 1
		if not s[i]:
			break
		answer += s[i]

	print(answer)

q = int(input())

for _ in range(q):

	n = int(input())
	a = sorted(list(map(int, input().split())))

	s = []
	last = a[0]
	count = 1
	for i in range(1, n):
		if a[i] != last:
			s.append(count)
			last = a[i]
			count = 0
		count += 1
	s.append(count)

	s.sort()

	answer = s[-1]

	for i in range(len(s) - 2, -1, -1):
		if s[i] >= s[i + 1]:
			s[i] = s[i + 1] - 1
		if not s[i]:
			break
		answer += s[i]

	print(answer)
