dfs
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
int Map[25][25];
int point;
int book[20];
int ans[20];
int start;
int num=1;
void dfs(int point,int step)
{
book[point]=1;
ans[step]=point;
if(step==19)
{
if(Map[point][start])
{
printf("%d: ",num++);
for(int j=0;j<20;j++)
{
printf(" %d",ans[j]);
}
printf(" %d\n",start);
}
return ;
}
for(int i=1;i<=20;i++)
{
if(!book[i]&&Map[point][i])
{
book[i]=1;
dfs(i,step+1);
book[i]=0;
}
}
};
int main()
{
memset(Map,0,sizeof(Map));
memset(book,0,sizeof(book));
memset(ans,0,sizeof(ans));
for(int i=1;i<=20;i++)
{
int a,b,c;
cin>>a>>b>>c;
Map[i][a]=1;
Map[i][b]=1;
Map[i][c]=1;
}
while(scanf("%d",&start),start)
{
book[start]=1;
dfs(start,0);
}
return 0;
}