#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
bool map[21][21];
bool vis[21];
int ans[21];
int num;
int start_city;
void dfs(int deep,int count)
{
ans[count]=deep;
if(count==19)
{
if(map[deep][start_city])
{
cout<<num++<<": ";
for(int i=0;i<=19;i++)
{
cout<<ans[i]<<" ";
}
cout<<ans[0]<<endl;
}
return;
}
for(int j=1;j<=20;j++)
{
if(map[deep][j] && !vis[j])
{
vis[j]=true;
dfs(j,count+1);
vis[j]=false;
}
}
}
int main()
{
int a,b,c;
memset(map,0,sizeof(map));
for(int i=1;i<=20;i++)
{
cin>>a>>b>>c;
map[i][a]=true;
map[i][b]=true;
map[i][c]=true;
}
while(cin>>start_city,start_city)
{
num=1;
memset(vis,0,sizeof(vis));
memset(ans,0,sizeof(ans));
vis[start_city]=true;
dfs(start_city,0);
}
return 0;
}