/* 很好的字符串 比较方法 很多个字符串 组成的 数字 需要最大 然后 比较 a和b 是 比较a+b 和b+a 的大小 */ #include<cstdio> #include<string.h> #include<iostream> #include<algorithm> using namespace std; struct point{ char str[100]; }T[55]; bool cmp(point A,point B){ int i,a=strlen(A.str),b=strlen(B.str); point C=A,D=B; for(i=0;i<b;i++) C.str[a+i]=B.str[i]; for(i=0;i<a;i++) D.str[b+i]=A.str[i]; for(i=0;i<a+b;i++) if(C.str[i]!=D.str[i]){ return C.str[i]>D.str[i]; } return true; } int main() { int n,i; char sst[15]; while(true){ scanf("%d",&n); if(n==0) break; for(i=0;i<n;i++) scanf("%s",T[i].str); sort(T,T+n,cmp); for(i=0;i<n;i++) printf("%s",T[i].str); printf(" "); } return 0; }