/*
ID: niepeng1
PROG: lgame
LANG: C++
*/
/*
又是很无聊的字符串的操作。无聊到死。
就是拿一个串过来比,或拿两个串来比较。
*/
#include<stdio.h>
#include<memory.h>
#include<string.h>
#include<algorithm>
#include <functional>
#include <iostream>
using namespace std;
struct Node{
char s[10];
int poi;
}dic[40000];
struct nnode{
char s[10];
} ans[10000];
char list[26]={2,5,4,4,1,6,5,5,1,7,6,3,5,2,3,5,7,2,1,2,4,6,6,7,5,7},tem[26],model[26],str[26];
int maxpoi,num;
bool cmp(nnode a,nnode b)
{
return strcmp(a.s,b.s)<0;
}
int calc(int x,int y)
{
int i,total=0;
memcpy(tem,model,sizeof(tem));
for(i=0;dic[x].s[i];i++)
if (!tem[dic[x].s[i]-'a'])
return -1;
else{
tem[dic[x].s[i]-'a']--;
total+=list[dic[x].s[i]-'a'];
}
if( y==-1)
return total;
for(i=0;dic[y].s[i];i++)
if(!tem[dic[y].s[i]-'a'])
return -1;
else{
tem[dic[y].s[i]-'a']--;
total+=list[dic[y].s[i]-'a'];
}
return total;
}
void scan(int x,int y)
{
int i,j;
char nword[10];
if( y == -1)
{
if( dic[x].poi>maxpoi)
{
maxpoi=dic[x].poi;
num=0;
strcpy(ans[num++].s,dic[x].s);
}
else if( dic[x].poi==maxpoi)
{
strcpy(ans[num++].s,dic[x].s);
}
}
else{
if(dic[x].poi+dic[y].poi<maxpoi) return;
if( calc(x,y) !=-1)
{
if( strcmp(dic[x].s,dic[y].s)<0)
{
for(i=0;dic[x].s[i];i++) nword[i]=dic[x].s[i];
nword[i++]=' ';
for(j=0;dic[y].s[j];j++) nword[i++]=dic[y].s[j];
nword[i]='/0';
}
else
{
for(i=0;dic[y].s[i];i++) nword[i]=dic[y].s[i];
nword[i++]=' ';
for(j=0;dic[x].s[j];j++) nword[i++]=dic[x].s[i];
nword[i]='/0';
}
if( dic[x].poi+dic[y].poi>maxpoi)
{
maxpoi=dic[x].poi+dic[y].poi;
num=0;
strcpy(ans[num++].s,nword);
}
else if( dic[x].poi+dic[y].poi==maxpoi)
{
strcpy(ans[num++].s,nword);
}
}
}
}
int main()
{
freopen("lgame.in","r",stdin);
int i,j,n;
scanf("%s",str);
memset(model,0,sizeof(model));
for(i=0;str[i];i++)
model[str[i]-'a']++;
freopen("lgame.dict","r",stdin);
freopen("lgame.out","w",stdout);
i=0;
while(scanf("%s",dic[i].s)&&dic[i].s[0]!='.')
{
dic[i].poi=calc(i,-1);
scan(i++,-1);
}
n=i-1;
for(i=0;i<n;i++)
if( dic[i].poi!=-1)
for(j=i;j<n;j++)
if(dic[j].poi!=-1)
scan(i,j);
sort(ans,ans+num,cmp);
printf("%d/n",maxpoi);
for(i=0;i<num;i++) printf("%s/n",ans[i].s);
return 0;
}