#include <iostream>
#include <algorithm>

using namespace std;
const int maxn=110;
int n,k,pock;
string leks[maxn];
char abc[maxn];

int nadi(char c){
    for (int i=0;i<k;i++){
            if (abc[i]==c){
                    return i;
            }
    }
    return 0;
}

int main (void){
    cin >> n;
    for (int i=0;i<n;i++){
        cin >> leks[i];
        if (nadi(leks[i][0])==0){
                abc[k]=leks[i][0];
                k++;
        }
    }
    pock=k;
    for (int i=0;i<n;i++){
            if (leks[i][0]==leks[i+1][0]){
                for (int j=1;j<max(leks[i].size(),leks[i+1].size());j++){
                        if (leks[i][j]!=leks[i+1][j]&&j<min(leks[i].size(),leks[i+1].size())){

                        }
                }
            }
    }
    if (pock!=k){
    for (int i=0;i<k;i++){
            cout << abc[i];
    }
    cout << endl;
    }
    else{
        cout << '?' << endl;
    }
    return 0;
}
