#include<bits/stdc++.h>
using namespace std;
string A,B,a[30],b[30];
map<string,bool> ed;
map<string,int> st;
int n=1,ans=999999,k=2;
void dfs(string now,int x)
{
if(x>k) return;
if(now==B) {
ans=min(ans,x);
return;
}
if(ed[now]) {
if(x>=st[now]) return ;
}
ed[now]=1;
st[now]=x;
int loc=0;
string change;
for(int i=1; i<=n; ++i) {
loc=-1;
while(1) {
loc=now.find(a[i],loc+1);
if(loc==-1) break;
change=now;
change.erase(loc,a[i].size());
change.insert(loc,b[i]);
dfs(change,x+1);
}
}
return ;
}
int main()
{
cin>>A>>B;
while(cin>>a[n]>>b[n]) {
n++;
}
n--;
while(ans==999999) {
dfs(A,0);
ed.clear();
st.clear();
k++;
if(k==11) break;
}
if(ans=999999) {
cout<<"NO ANSWER!"<<endl;
return 0;
}
cout<<ans<<endl;
return 0;
}