#include<bits/stdc++.h>
using namespace std;
struct crood{
string s;
int cnt;
};
queue<crood>Q;
string a,b;
string x[10],y[10];
int main()
{
cin>>a>>b;
int n=0;
while(cin>>x[++n]>>y[n]);
Q.push((crood){a,0});
while(!Q.empty())
{
if(Q.front().s==b)
{
cout<<Q.front().cnt<<endl;
return 0;
}
if(Q.front().cnt==10)
Q.pop();
string str=Q.front().s;
int sum=Q.front().cnt;
for(int i=1;i<=n;i++)
{
int p=0;
while(str.find(x[i],p)!=-1)
{
int p=str.find(x[i],p);
str=str.substr(0,p)+y[i]+str.substr(p+x[i].size());
Q.push((crood){str,sum+1});
p++;
}
}
Q.pop();
}
cout<<"NO ANSWER!"<<endl;
return 0;
}
rt 请问那里有问题