#include <bits/stdc++.h>
#define rep(i, a, n) for(int i = a; i < n; i++)
#define REP(i, n) rep(i, 0, n)
#define repb(i, a, b) for(int i = a; i >= b; i--)
#define all(a) a.begin(), a.end()
#define int long long
#define chmax(x, y) x = max(x, y)
#define chmin(x, y) x = min(x, y)
using namespace std;
typedef pair<int, int> P;
const int mod = 1000000007;
const int INF = 1e12;

int n;
string pre[11], aft[11];
string s, g;

string change(string str, int id){
    string res = str;
    size_t pos = res.find(pre[id]);    
    while(pos != string::npos){
        res.replace(pos, pre[id].size(), aft[id]);
        pos = res.find(pre[id], pos + aft[id].size());
    }
    return res;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    while(cin >> n, n){
        rep(i, 0, n){
            cin >> pre[i] >> aft[i];
        }
        cin >> s >> g;
        queue<string> q;
        map<string, int> mp;
        q.push(s);
        mp[s] = 1;
        while(!q.empty()){
            string now = q.front(); q.pop();
            rep(i, 0, n){
                string tmp = change(now, i);
                if(tmp.size() > g.size()) continue;
                if(mp.count(tmp)) continue;
                // cout << i << ' ' << now << ' ' << tmp << endl;                
                mp[tmp] = mp[now] + 1;
                q.push(tmp);
            }
        }
        cout << mp[g] - 1 << endl;
    }
}
