Developers often face with regular expression patterns. A pattern is usually defined as a string consisting of characters and metacharacters that sets the rules for your search. These patterns are most often used to check whether a particular string meets the certain rules.

In this task, a pattern will be a string consisting of small English letters and question marks ('?'). The question mark in the pattern is a metacharacter that denotes an arbitrary small letter of the English alphabet. We will assume that a string matches the pattern if we can transform the string into the pattern by replacing the question marks by the appropriate characters. For example, string aba matches patterns: ???, ??a, a?a, aba.

Programmers that work for the R1 company love puzzling each other (and themselves) with riddles. One of them is as follows: you are given *n* patterns of the same length, you need to find a pattern that contains as few question marks as possible, and intersects with each of the given patterns. Two patterns intersect if there is a string that matches both the first and the second pattern. Can you solve this riddle?
The first line contains a single integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>) — the number of patterns. Next *n* lines contain the patterns.

It is guaranteed that the patterns can only consist of small English letters and symbols '?'. All patterns are non-empty and have the same length. The total length of all the patterns does not exceed 10<sup class="upper-index">5</sup> characters.
import sys 
n =  int(input())
preco = []
while(n>0):
    preco.append(input())
    n-=1
maxOc =  0
maxindex = 0
minOc = len(preco[0])
minIndex = 0  
for x in range(len(preco)):
    if(preco[x].count('?') > maxOc):
        maxOc = preco[x].count('?')
        maxindex = x
    if(preco[x].count('?') < minOc):
        minOc = preco[x].count('?')
        minIndex = x 
minStr = preco[minIndex]
maxStr =  preco[maxindex]
ans = ''

     
for x in range(len(maxStr)-1, -1,-1):
    if(maxStr[x] == minStr[x] and not(x == maxindex and x==minIndex)):
        ans+=minStr[x]
    else:
        if( not(maxStr[x] == '?') and not(minStr[x]=='?')):
            ans+='?'
        else:
            ans+=minStr[x]
if( not ans.count('?') == len(ans)):
    ans = ans.replace('?','z')
print(ans[::-1]) 