各位大佬救救我...THX
#include<bits/stdc++.h>
#define N 1009
using namespace std;
typedef long long ll;
ll n,m,f[N][N],ans=0;
map<string,ll> mp;
vector<ll> to[N];
int main(){
cin>>n>>m;
for(ll i=1;i<=n;++i){
string s;cin>>s;
mp[s]=i;
}
for(ll i=1;i<=m;++i){
string a,b;
cin>>a>>b;
to[mp[a]].push_back(mp[b]);
to[mp[b]].push_back(mp[a]);
}
for(ll i=1;i<=n;++i)
for(ll j=i;j<=n;++j){
for(ll k=0,v;k<to[i].size();++k)
if((v=to[i][k])>j) f[j][v]=max(f[j][v],f[i][j]+1);
for(ll k=0,v;k<to[j].size();++k)
f[i][v=to[j][k]]=max(f[i][v],f[i][j]+1);
}
for(ll i=0;i<to[n].size();++i)
ans=max(ans,f[to[n][i]][n]);
cout<<ans+1;
return 0;
}