#include #include #include using namespace std; #define MAX 1000010 vector c[MAX]; char x[MAX]; int ptr[MAX], valid, fr[30]; int main() { int n, i, j, ok; n = 0; while(cin) { cin >> x; c[n].resize(strlen(x)); for(i = 0 ; x[i] ; i++) { c[n][i] = x[i]; // cout << x[i]; } n++; } n--; for(i = 0 ; i <= n ; i++) { ptr[i] = 0; } valid = n + 1; while(valid) { for(i = 0 ; i < 26 ; i++) fr[i] = 0; for(i = 0 ; i <= n ; i++) { if(ptr[i] < c[i].size()) fr[c[i][ptr[i]] - 'a']++; } ok = 0; for(i = 0 ; i < 26 ; i++) { if(fr[i] > fr[ok]) ok = i; } cout << (char)(ok + 'a'); for(i = 0 ; i <= n ; i++) { if(ptr[i] < c[i].size()) if(c[i][ptr[i]] - 'a' == ok) { ptr[i]++; if(ptr[i] == c[i].size()) valid--; } } } }