#include<bits/stdc++.h>
#define int1 long long
#define owo 10005
using namespace std;
int1 ii,i,j,k,nn,cc[owo],dd[owo];
string a,b,aa[owo],bb[owo],c;
bool f;
int1 read(){
int1 x = 0,f = 1;
char ch = getchar();
while(!isdigit(ch)){
if(ch == '-'){
f = -1;
}
ch = getchar();
}
while(isdigit(ch)){
x = (x << 1) + (x << 3) + ch - '0';
ch = getchar();
}
return x * f;
}
void print(int1 x){
if(x < 0){
putchar('-');
x = -x;
}
if(x > 9){
print(x / 10);
}
putchar(x % 10 + 48);
return ;
}
string str(){
char ch = getchar();
string w = "";
while(!isalpha(ch)){
ch = getchar();
}
while(isalpha(ch)){
w += ch;
ch = getchar();
}
return w;
}
int1 son(string s,int1 t){
int1 n = s.size(),m = cc[t],nm = n - m;
for(i = 0; i <= nm; i++){
for(j = 0,k = i; j < m; j++,k++){
if(s[k] != aa[t][j]){
break;
}
}
if(j == m){
return i;
}
}
return -1;
}
string change(string x,int1 y,int1 r){
int1 n = x.size(),nnn = n,m = 0,i,ma = max(cc[y],dd[y]);
c = "";
for(i = r + cc[y]; i < nnn; i++){
c[++m] = x[i];
n--;
}
n -= cc[y];
for(i = 0; i < ma; i++){
x[i + r] = bb[y][i];
n++;
}
while(x[n - 1] < 'a' || x[n - 1] > 'z'){
n--;
}
for(i = 1; i <= m; i++){
x[n] = c[i];
n++;
}
c = "";
for(i = 0; i < n; i++){
c += x[i];
}
return c;
}
bool d(string x,string y){
int1 n = x.size(),m = y.size();
if(n != m){
return 0;
}
for(int1 i = 0; i < n; i++){
if(x[i] != y[i]){
return 0;
}
}
return 1;
}
void dfs(string x,int1 s){
if(s > ii){
return ;
}
if(d(x,b)){
f = 1;
return ;
}
for(int1 i = 1; i <= nn; i++){
if(f){
return ;
}
int1 p = son(x,i);
if(p >= 0){
dfs(change(x,i,p),s + 1);
}
}
return ;
}
int main(){
a = str(),b = str();
while(++i && cin >> aa[i] >> bb[i]){
cc[i] = aa[i].size(),dd[i] = bb[i].size();
}
while(aa[i][0] == '\0'){
i--;
}
nn = i;
for(ii = 1; ii <= 10; ii++){
dfs(a,0);
if(f){
print(ii);
return 0;
}
}
printf("NO ANSWER!");
return 0;
}