#include<bits/stdc++.h>
using namespace std;
const int N=257,NN=1e5+7;
vector<int> g[N];
char s[NN];
int d[N],n,cnt=0;
bool p[N],book[N][N];
inline void dfs(int u)
{
for(int i=0;i<g[u].size();i++)
{
if (book[u][g[u][i]])
{
book[u][g[u][i]]=book[g[u][i]][u]=false;
dfs(g[u][i]);
}
}
s[n--]=u;
return;
}
int main(void)
{
int fa=0;
cin>>n;
for(int i=1;i<=n;i++)
{
char u,v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
p[u]=p[v]=book[u][v]=book[v][u]=true;
d[u]++;
d[v]++;
}
for(int i=65;i<=122;i++)
{
if (d[i]%2==1)
{
cnt++;
if (!fa)
{
fa=i;
}
}
}
if (cnt && cnt!=2)
{
cout<<"No Solution";
return 0;
}
if (!fa)
{
for(int i=65;i<=122;i++)
{
if (d[i])
{
fa=i;
break;
}
}
}
dfs(fa);
puts(s);
return 0;
}
蒟蒻求助~