#include<bits/stdc++.h>
using namespace std;

#define int long long
#define INF ((int)1e18)
#define MOD ((int)(1e9) + 7)

string a, b;
vector<pair<string, string> > t;

int solve(string x){
  int mi = INF;

  if(x == b) return 0;
  if(x.size() > b.size()) return INF;
  
  for(int i = 0; i < t.size(); i++){
    string w;
    int f = 0;
    bool flag2 = false;
    for(int j = 0; j < x.size(); j++){
      bool flag = true;
      if(j >= x.size() - t[i].second.size() + 1){
	string temp = x;
	w += temp.erase(0, j);
	break;
      }
      for(; f < j + t[i].second.size() && f < x.size(); f++){
      }
      
      for(int k = 0; k < t[i].second.size(); k++){
	if(t[i].second[k] != x[j+k]){
	  flag = false;
	  break;
	}
      }
      if(flag){
	flag2 = true;
	w += t[i].first;
	j += t[i].second.size() - 1;
      } else {
	w += x[j];
      }
    }

    if(flag2){
	mi = min(mi, solve(w) + 1);
    }
  }
  return mi;
}
signed main(){
  
  while(true){
    int n;
    t.clear();

    cin>>n;

    if(!n) break;

    t.resize(n);
    
    for(int i = 0; i < n; i++){
      cin>>t[i].second>>t[i].first;
    }
    
    cin>>a>>b;

    int temp = solve(a);

    cout<<(temp == INF ? -1 : temp)<<endl;
  }
}


