#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cassert>
#include <cmath>
#include <ctime>
using namespace std;
typedef long long ll;
typedef double db;
struct rule
{
string a, b;
}lst[10];
string sa, sb;
const int maxdepth = 10;
int cnt = 1;
int ans = 100;
void dfs(int dep)
{
if (dep >= maxdepth)
return;
if (sa == sb)
{
ans = min(ans, dep);
return;
}
for (int i = 1; i <= cnt; ++i)
{
int pos = sa.find(lst[i].a);
string s = sa;
while (pos != sa.npos)
{
sa.replace(pos, lst[i].a.length(), lst[i].b);
pos = sa.find(lst[i].a);
}
dfs(dep + 1);
sa = s;
}
}
int main()
{
cin >> sa >> sb;
while ((cin >> lst[cnt].a >> lst[cnt].b))
{
++cnt;
}
--cnt;
dfs(0);
if (ans == 100)
printf("NO ANSWER!\n");
else
printf("%d\n", ans);
return 0;
}