#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <cstdlib>
#include <cctype>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <utility>
#include <map>
#include <set>
#include <list>
#include <vector>
using namespace std;
const int maxn=7,Inf=0x3f3f3f3f;
string A,B,t;
string A_rule[maxn],B_rule[maxn];
int cnt=-1,iMin=Inf;
void DFS(int step,string s)
{
if(step>10) {
return ;
}
if(s==B) {
iMin=min(iMin,step-1);
}
for(int i=1; i<=cnt; ++i) {
int pos=s.find(A_rule[i]);
if(pos!=-1) {
s.replace(pos,A_rule[i].size(),B_rule[i]);
DFS(step+1,s);
s.replace(pos,B_rule[i].size(),A_rule[i]);
}
}
return;
}
int main()
{
cin>>A>>B;
while(getline(cin,t)) {
++cnt;
int pos=t.find(" ");
A_rule[cnt]=t.substr(0,pos);
B_rule[cnt]=t.substr(pos+1);
}
DFS(1,A);
if(iMin==Inf) {
printf("NO ANSWER!");
} else {
printf("%d",iMin);
}
return 0;
}