#include <bits/stdc++.h>
using namespace std;
map<string, long long> a;
int mas[20][20];
string no[100];
vector<string> str;
long long n;
long long prov(long long p) {
  long long i, j;
  for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
      if (mas[i][j] == 1 && (p >> i) & 1 && (p >> j) & 1) return 0;
  for (i = 0, j = 0; i < n; i++) j += (p >> i) & 1;
  return j;
}
int main() {
  long long m, i, j, l, MAX = 0, E;
  string s, t;
  cin >> n >> m;
  long long k = (1 << n);
  for (i = 0; i < n; i++) {
    cin >> s;
    a[s] = i;
    no[i] = s;
  }
  for (i = 0; i < m; i++) {
    cin >> s >> t;
    mas[a[s]][a[t]] = 1;
    mas[a[t]][a[s]] = 1;
  }
  for (i = 0; i < k; i++) {
    long long kol = prov(i);
    if (kol > MAX) {
      E = i;
      MAX = kol;
    }
  }
  cout << MAX;
  if (MAX) {
    for (i = 0; i < n; i++)
      if ((E >> i) & 1) str.push_back(no[i]);
    sort(str.begin(), str.end());
    i = 1;
    cout << '\n' << str[0];
    while (i < str.size()) {
      cout << '\n' << str[i];
      i++;
    }
  }
  return 0;
}
