#include <iostream>
#include <cstring>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
char input[1000];
int id[256],P[10],pos[10],best[10];
char letter[26];
int main()
{
while(scanf("%s",input)==1&&input[0]!='#')
{
int n=0;
for(char ch='A';ch<='Z';ch++)
{
if(strchr(input,ch)!=NULL)
{
id[ch]=n++;
letter[id[ch]]=ch;
}
}
int len=strlen(input),p=0,q=0;
vector<int> u,v;
while(true)
{
while(input[p]!=':'&&p<len) p++;
if(p==len) break;
while(input[q]!=';'&&q<len) q++;
for(int i=p+1;i<q;i++)
{
u.push_back(id[input[p-1]]);
v.push_back(id[input[i]]);
}
p++;q++;
}
int ans=n;
for(int i=0;i<n;i++)
{
P[i]=i;
}
do
{
for(int i=0;i<n;i++)
{
pos[P[i]]=i;
}
int bidwidth=0;
bool flag=false;
for(int i=0;i<u.size();i++)
{
bidwidth=max(abs(pos[u[i]]-pos[v[i]]),bidwidth);
if(bidwidth>ans)
{
flag=true;
break;
}
}
if(flag==true) continue;
if(ans>bidwidth)
{
ans=bidwidth;
memcpy(best,P,sizeof(P));
}
}while(next_permutation(P,P+n));
for(int i=0;i<n;i++)
{
printf("%c ",letter[best[i]]);
}
printf("-> %d\n",ans);
}
return 0;
}