#include <stdio.h>
#include <stdlib.h>
typedef struct table
{
int known;
int dist;
int path;
}TABLE;
typedef struct table Table;
void Dijkstra(int graph[8][8],int a, int b)
{
Table T[9];
int V=a,W;
int check=0;
int out[8];
int min=100,I;
for(int i=0;i<9;i++)//初始化成F//
{
T[i].known=0;
T[i].dist=100;
out[i]=0;
}
//从第一个开始//
//T[a].known=1;
T[a].path=a;
T[a].dist=0;
//for(int p=0;p<49 ;p++)
for(; ;)
{
T[V].known=1;
if(V>7||V==0||V==b)
{
break;
}
for(int j=0;j<8;j++)
{
if(graph[V][j]!=0&&T[j].known==0)
{
if(T[V].dist+graph[V][j]<T[j].dist)
{
T[j].dist=T[V].dist+graph[V][j];
T[j].path=V;
}
}
}
min=100;
for(int i=0;i<9;i++)
{
if(T[i].known==0&&T[i].dist<min)
{
min=T[i].dist;
I=i;
}
}
if(min==100)
{
break;
}
V=I;
}
/*for(int i=1;i<8;i++)
{
printf("%d,",T[i].path);
}
printf("\n");*/
if(T[b].known==0)
{
printf("-1");
}
else
{
int i=0;
while(T[b].dist!=0)
{
out[i]=b;
b=T[b].path;
i++;
}
out[i]=a;
while(i>=0)
{
printf("%d,",out[i]);
i--;
}
}
}
int main()
{
int graph[8][8];
int i,j,I;
int a,b;
scanf("%d,%d",&a,&b);
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
graph[i][j]=0;
}
}
graph[3][1]=4;
graph[3][6]=5;
graph[1][2]=2;
graph[1][4]=1;
graph[2][4]=3;
graph[2][5]=10;
graph[4][3]=2;
graph[4][5]=2;
graph[4][6]=8;
graph[4][7]=4;
graph[5][7]=6;
graph[7][6]=1;
Dijkstra(graph,a,b);
return 0;
}