#include <stdio.h>
#include <stdlib.h>
typedef struct table
{
int known;
}TABLE;
typedef struct table Table;
void initialize(int graph[9][9]);
void DFS(int V, int graph[9][9],Table *T)
{
T[V].known=1;
printf("%d,",V);
for(int W=0;W<9;W++)
{
if(graph[V][W]==1)
{
graph[V][W]=0;
if(T[W].known==0)
{
//printf("%d,",W);
DFS(W,graph,T);
}
}
}
}
int main()
{
int graph[9][9];
int i,j;
int x;
Table T[9];
scanf("%d,",&x);
for(int t=0;t<9;t++)
{
T[t].known=0;//0=false,1=true//
}
for(i=0;i<9;i++)
{
for(j=0;j<9;j++)
{
graph[i][j]=0;
}
}
initialize(graph);
DFS(x,graph,T);
return 0;
}
void initialize(int graph[9][9])
{
int i,j;
i=1;
j=2;
graph[i][j]=1;
graph[j][i]=1;
i=2;j=1;
graph[i][j]=1;
graph[j][i]=1;
i=1;j=3;
graph[i][j]=1;
graph[j][i]=1;
i=3;j=1;
graph[i][j]=1;
graph[j][i]=1;
i=2;j=4;
graph[i][j]=1;
graph[j][i]=1;
i=4;j=2;
graph[i][j]=1;
graph[j][i]=1;
i=2;j=5;
graph[i][j]=1;
graph[j][i]=1;
i=5;j=2;
graph[i][j]=1;
graph[j][i]=1;
i=4;j=8;
graph[i][j]=1;
graph[j][i]=1;
i=8;j=4;
graph[i][j]=1;
graph[j][i]=1;
i=5;j=8;
graph[i][j]=1;
graph[j][i]=1;
i=8;j=5;
graph[i][j]=1;
graph[j][i]=1;
i=3;j=6;
graph[i][j]=1;
graph[j][i]=1;
i=6;j=3;
graph[i][j]=1;
graph[j][i]=1;
i=3;j=7;
graph[i][j]=1;
graph[j][i]=1;
i=7;j=3;
graph[i][j]=1;
graph[j][i]=1;
i=6;j=8;
graph[i][j]=1;
graph[j][i]=1;
i=8;j=6;
graph[i][j]=1;
graph[j][i]=1;
i=7;j=8;
graph[i][j]=1;
graph[j][i]=1;
i=8;j=7;
graph[i][j]=1;
graph[j][i]=1;
}