Chef is very organised in whatever he does and likes to maintain statistics of his work. Chef has expertise in web development and hence is a regular contributor on a forum. Chef sometimes makes multiple contributions in a single day.. Each day chef makes at least 1 contribution he is assigned a shade of green. The greater the number of contribution in a single day the darker shade of green he gets assigned and vice versa. Your job is to find out the number of days chef is assigned a same shade of green and print the number of times chef is assigned a unique shade of green.

-----INPUT-----
The first line of input contains an integer T denoting the number of test cases. T test cases follow.

The first line of each test case contains an integer N denoting the number of days chef has contributed towards the forum.

The next line contains N spaced integers the number of contributions chef has made if he has made any.

-----OUTPUT-----

The output will contain numbers on separate lines that show the number of individual green shades chef has earned in ascending order of intensity of the shades of green.

-----CONSTRAINTS-----
1 <= T <= 25

5 <= N <= 50

1 <= Ai <= 50

-----EXAMPLE-----Input:

1

7

20 6 5 3 3 1 1
Output:

1: 2

3: 2

5: 1

6: 1

20: 1

Source: codechef | Difficulty: UNKNOWN_DIFFICULTY


Solutions:
from collections import Counter
t = int(input())
for i in range(t):
	k = int(input())
	l = list(map(int, input().split()))
	a = Counter(l)
	b = list(a.keys())
	b.sort()
	for x in b:
		s = str(x) + ': ' + str(a[x])
		print(s)


n = int(input())
from collections import Counter
for c in range(n):
	t = int(input())
	s = list(map(int, input().strip().split()))
	count = dict(Counter(s))
	for k in sorted(count.keys()):
		answer = str(k) + ': ' + str(count[k])
		print(answer)


for j in range(int(input())):
	n = int(input())
	l = list(map(int, input().split()))
	for k in range(min(l), max(l) + 1):
		tmp = l.count(k)
		if tmp > 0:
			print('%d: %d' % (k, tmp))


take = lambda : input().strip()
cal = lambda : list(map(int, take().split()))
from math import sqrt
T = int(take())
for _ in range(T):
	N = take()
	alpha = {}
	s = list(cal())
	for i in s:
		if i in alpha:
			alpha[i] += 1
		else:
			alpha[i] = 1
	for e in sorted(alpha.keys()):
		print(str(e) + ': ' + str(alpha[e]))


t = int(input().strip())
for test in range(t):
	n = int(input().strip())
	word = list(map(int, input().strip().split(' ')))
	word = sorted(word)
	i = 0
	ab = []
	while i < len(word):
		if word[i] not in ab:
			ab.append(word[i])
			print(str(word[i]) + ': ' + str(word.count(word[i])))
		i = i + 1


t = int(input())
r = 0
while t:
	t -= 1
	n = int(input())
	a = input().split()
	a = [int(i) for i in a]
	x = max(a)
	for i in range(x + 1):
		cnt = a.count(i)
		if cnt:
			print(str(i) + ':', cnt)


from collections import *
for t in range(int(input())):
	n = int(input())
	a = list(map(int, input().split()))
	c = Counter()
	for e in a:
		c[e] += 1
	for (k, v) in sorted(c.items()):
		print(str(k) + ':', v)


t = int(input().strip())
while t:
	n = int(input().strip())
	li = list(map(int, input().strip().split()))
	di = {}
	for i in li:
		if i in di:
			di[i] += 1
		else:
			di[i] = 1
	for key in sorted(di):
		print('%s: %s' % (key, di[key]))
	t -= 1