mp;//用于存储某种情况是否出现过
int change[4]={3,-3,-1,1};
struct node
{
string s;
int step;
}first;//初始状态
queueq;
int n,move_;
char temp;
string temp_s;
int check(int u, int v)//u起点,v终点
{
if (v < 0 || v>8)return 0;
if (v == u - 1)//如果是左移一位,必须保证起点不在第一列
{
if (u == 0 || u == 3 || u == 6)return 0;
}
if (v == u + 1)//如果是右移一位,必须保证起点不在最后一列
{
if (u == 2 || u == 5 || u == 8)return 0;
}
return 1;//都不会违规就返回1
}
int find_(string ss)
{
if(mp.count(ss))return 0;//如果已存在
return 1;
}
int main()
{
string s_first, s_last;
cin >> s_first >> s_last;
f