#include<bits/stdc++.h>
using namespace std;
char a,b;
stack<int> q;
int n,G[300][300],del[300],cnt,fir;
void dfs(int x){
for(int i = 0;i < 300;i++){
if(G[x][i]){
G[x][i] = G[i][x] = 0;
dfs(i);
}
}
q.push(x);
}
int main() {
cin>>n;
for(int i = 0;i < n;i++){
char a,b;
cin>>a>>b;
G[a][b] = G[b][a] = 1;
del[a]++,del[b]++;
}
for(int i = 0;i < 300;i++){
if(del[i] & 1){
++cnt;
if(!fir){
fir = i;
}
}
}
if(!fir)
for(int i = 0;i < 300;i++)
if(!del[i]) {
fir = i;
break;
}
if(cnt && cnt != 2){
cout<<"No Solution";
return 0;
}
dfs(fir);
while(!q.empty()){
char u = q.top();
q.pop();
cout<<u;
}
}
死也不输出