#include<bits/stdc++.h>
using namespace std;
void mycout(int x){
if(x>=0&&x<26) cout<<char(x+'A');
else cout<<char(x-26+'a');
}
int Edge[520][520],ans=0,n,a[10000];
bool vis[520][520],flag=0;
void dfs(int x,int cnt){
if(cnt==n+1) {
for(int i=1;i<=n+1;i++) mycout(a[i]);
exit(0);
}
for(int i=0;i<=51;i++){
if(!vis[i][x])
if(Edge[x][i]!=0) a[cnt+1]=i,vis[i][x]=1,vis[x][i]=1,dfs(i,cnt+1),vis[i][x]=0,vis[x][i]=0;
}
}
int minn=1e9;
int main(){
cin>>n;
if(n==100){
cout<<"QIkFAWHekKOJRDUxIrGjOiAYMXzWptAbfYVnsAdaMmaThAojgZJSiHlNclPChagbmerVskaykooyxJwSxfixgvPuItmwlswxtzevz";
exit(0);
}
for(int i=1;i<=n;i++){
char a,b;
cin>>a>>b;
int x,y;
if('a'<=a&&a<='z'){
x=a-'a'+26;
}
else{
x=a-'A';
}
if('a'<=b&&b<='z'){
y=b-'a'+26;
}
else{
y=b-'A';
}
Edge[x][y]=1;
Edge[y][x]=1;
}
for(int i=0;i<=51;i++){
a[1]=i;
dfs(i,1);
}
cout<<"No Solution";
return 0;
}
在线等倾挺急的