#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int n, m,ans=-1;
string s[20];
map<string, vector<string>> nt;
vector<int> ans2;
bool cmp(string a, string b)
{
return a < b;
}
void check(int k)
{
vector<int> a;
for (int i = 0; i <n; i++)
{
if (k >> i & 1)a.push_back(i);
}
int o = a.size();
for (int i = 0; i < o; i++)
{
for (int j = i+1; j < o; j++)
{
for (int k = 0; k < nt[s[i]].size(); k++)
{
for (int l = 0; l < nt[s[j]].size(); l++)
{
if (nt[s[i]][k] == nt[s[j]][l])return;
}
}
}
}
if (ans < o)
{
ans2.clear();
ans = o;
for (int i = 0; i < ans; i++)
{
ans2.push_back(a[i]);
}
return;
}
return;
}
int main()
{
cin >> n;
cin >> m;
for (int i = 0; i < n; i++)
{
cin >> s[i];
nt[s[i]].push_back("");
}
for (int i = 0; i < m; i++)
{
string t1, t2;
cin >> t1 >> t2;
nt[t1].push_back(t2);
nt[t2].push_back(t1);
}
for (int i = 0; i < 1<<n; i++)
{
check(i);
}
cout << ans << endl;
vector<string> str;
for (int i = 0; i < ans; i++)
{
str.push_back(s[ans2[i]]);
}
sort(str.begin(), str.end(), cmp);
for (int i = 0; i < ans; i++)
{
cout << str[i] << endl;
}
}
为什么样例过不去QAQ?