You have been given a set of N strings S1, S2, .... SN. Consider any non-empty string S (S need not belong to the given set of N strings). Suppose S occurs (as a substring) in K out of the N given strings in the set. Your job is to choose S such that the value of K is maximized. If there are many such strings, choose the one with the least length. If there are many such strings with the least length, choose the lexicographically smallest of them all.

Input:

The first line consists of T the number of test cases.
The first line in each test case consists of N, the number of words in the given set. Each of the next N lines contains a single word consisting of lowercase English alphabets (a-z) only.

Output:

Print the answer to each test case on a new line, the answer to each test case being a single string S as described in the problem above.

Constraints :

1 ≤ T ≤ 5

1 ≤ N ≤ 100

1 ≤ |Si| ≤ 100, |Si| denotes the length of the input words.

Author : Himanshu

Tester : Shreyans

(By IIT Kgp HackerEarth Programming Club)

SAMPLE INPUT
1
1
shades

SAMPLE OUTPUT
a
t = int(raw_input())
while (t > 0):
	n = int(raw_input())
	i = 0
	l = []
	ll = []
	ans = []
	for j in range(26):
		l.append(0)
	for j in range(26):
		ll.append(False)
	for j in range(26):
		ans.append(False)
	max = 0
	while (i < n):
		s = raw_input()
		for char in s:
			if (ll[ord(char)-97] == False and ans[ord(char)-97] == True):
				l[ord(char)-97] += 1
				ll[ord(char)-97] = True
			elif (ans[ord(char)-97] == False):
				l[ord(char)-97] = 1
				ans[ord(char)-97] = True
				ll[ord(char)-97] = True
			if (l[ord(char)-97] > max):
				max = l[ord(char)-97]
		for j in range(26):
			ll[j] = False
		i += 1
	for k in range(26):
		if (l[k] == max):
			print str(unichr(k+97))
			break
	t -= 1