#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* findLCP(char **strings, int N){
    if (N == 0) return "";
    int min_len = strlen(strings[0]);
    for (int i = 1; i < N; i++) {
        int len = strlen(strings[i]);
        if (len < min_len) min_len = len;
}

char *lcp = (char*)malloc((min_len + 1) * sizeof(char));
int lcp_index = 0;

for (int i = 0; i < min_len; i++) {
    char c = strings[0][i];
    for (int j = 1; j < N; j++) {
        if (strings[j][i] != c) {
            lcp[lcp_index] = '\0';
            return lcp;
        }
    }
    lcp[lcp_index] = '\0';
    if (lcp_index == 0) {
        free(lcp);
        return "Invalid input";
    }
    return lcp;
}
int main(){
    int N;
    scanf("%d\n", &N);
    if(N < 1 || N > 100) {
        printf("Invalid input\n");
        return 1;
    }
    
   char **strings = (char**)malloc(N * sizeof(char*));
   for (int i = 0; i < N; i++) {
       strings[i] = (char*)malloc(MAX_STR_LEN * sizeof(char));
       scanf("%s", strings[i]);
   }
   
   char *lcp = findLCP(strings, N);
   printf("%s\n", lcp);
   free(lcp);
   for (int i = 0; i < N; i++) free(strings[i]);
   free(strings);
   
   return 0;
}