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

vector<int> adj[101];
int visited[101];
int dis[101];
int par[101];
map<string, int> c;
int cnt=1;

int bfs(int s, int d){
    queue<int> q;
    q.push(s);
    visited[s] = 1;
    dis[s] = 0;
    par[s] = -1;

    while(!q.empty()){
        int u = q.front();
        q.pop();

        for(int i=0; i<adj[u].size(); i++){
            int v = adj[u][i];
            if(visited[v]==0){
                q.push(v);
                visited[v] = 1;
                dis[v] = dis[u]+1;
                par[v] = u;
            }
        }
    }

    return dis[d];
}



int main(){
    int n, e;
    cin>>n>>e;
    for(int i=1; i<=e; i++){
        string us, vs;
        int u, v;
        cin>>us>>vs;
        if(c[us]==0){
            c[us] = cnt;
            cnt++;
        }
        if(c[vs]==0){
            c[vs] = cnt;
            cnt++;
        }
        u = c[us];
        v = c[vs];
        adj[u].push_back(v);
        adj[v].push_back(u);
    }

    string ss, ds;
    int s,d;
    cin>>ss>>ds;
    s = c[ss];
    d = c[ds];
    int res = bfs(s, d);

    cout<<res<<endl;

}

/*
8 9
DAC CTG
DAC RJH
DAC COM
RJH CTG
COM PRJ
CTG DNJ
GOP SHY
SHY DNJ
GOP RJH
DAC DNJ
*/