#include <bits/stdc++.h>
using namespace std;
vector<int> v;
string s[20];
pair<string, string> p[150];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    char x[15];
    scanf("%s", x);
    s[i] = (string)x;
  }
  for (int i = 0; i < m; i++) {
    char x[12], y[12];
    scanf("%s%s", &x, &y);
    p[i] = {(string)x, (string)y};
  }
  vector<string> res;
  for (int i = 0; i < (1 << n); i++) {
    int ii = i;
    int cnt = 0;
    vector<string> v;
    while (ii) {
      if (ii & 1) {
        v.push_back(s[cnt]);
      }
      ii = ii >> 1;
      cnt++;
    }
    bool f = 1;
    for (int j = 0; j < v.size(); j++) {
      for (int k = 0; k < v.size(); k++) {
        for (int l = 0; l < m; l++) {
          if (v[j] == p[l].first && v[k] == p[l].second) f = 0;
        }
      }
    }
    if (f && v.size() > res.size()) {
      res = v;
    }
  }
  sort(res.begin(), res.end());
  printf("%d\n", res.size());
  for (int i = 0; i < res.size(); i++) {
    printf("%s\n", res[i].c_str());
  }
  return 0;
}
