#include<bits/stdc++.h> usingnamespace std; constint N = 100 + 5; int n, m; map<string, int> ha; int mp[N][N], f[N][N], ans; intmain() { scanf("%d%d", &n, &m); string u, v; for (int i = 1; i <= n; ++i) cin >> u, ha[u] = i; for (int i = 1; i <= m; ++i) cin >> u >> v, mp[ha[u]][ha[v]] = mp[ha[v]][ha[u]] = 1; memset(f, -1, sizeof f); f[1][1] = 1; for (int i = 1; i < n; ++i) for (int j = i + 1; j <= n; ++j) for (int k = 1; k < j; ++k) if (mp[j][k] && f[i][k]) f[i][j] = f[j][i] = max(f[i][j], f[i][k] + 1); ans = 1; for (int i = 1; i <= n; ++i) if (mp[i][n]) ans = max(f[i][n], ans); printf("%d\n", ans); return0; }