#include<bits/stdc++.h>
using namespace std;
string s,t,a,b;
pair<string,string> c[10];
map<string,bool> vis;
map<string,int> mp;
int n=0,k=2;
int ans=(int)1e9+7;
string ch(string s,pair<string,string> c)
{
string a=c.first,b=c.second;
string ans="";
int w=s.find(a);
if(w>=s.size())
{
return "-1";
}else
{
ans+=s.substr(0,w);
ans+=b;
ans+=s.substr(w+a.size(),s.size());
return ans;
}
}
void dfs(int stp,string now)
{
if(stp>k) return ;
if(now==t)
{
ans=min(stp,ans);
return ;
}
if(vis[now])
{
if(stp>=mp[now]) return ;
}
vis[now]=1; mp[now]=stp;
for(int i=1;i<=n;i++)
{
string x=ch(now,c[i]);
if(x=="-1") continue;
dfs(stp+1,x);
}
}
int main()
{
cin>>s>>t;
while(cin>>a>>b)
{
c[++n]={a,b};
}
while(ans==(int)1e9+7)
{
dfs(0,s);
vis.clear();
mp.clear();
k++;
if(k==11) break;
}
if(ans==(int)1e9+7)
{
cout<<"NO ANSWER!";
return 0;
}
cout<<ans<<endl;
return 0;
}