#include <bits/stdc++.h>
using namespace std;
std::vector<long long int> adj[200000];
long long int vis[200000];
std::vector<long long int> st;
long long int f = 0;
void dfs(long long int src) {
  vis[src] = 1;
  for (auto u : adj[src]) {
    if (vis[u] == 1)
      f = 1;
    else if (!vis[u])
      dfs(u);
  }
  vis[src] = 2;
  st.push_back(src);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int n, k;
  cin >> n >> k;
  long long int a[k];
  for (int i = 0; i < k; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) {
    long long int m;
    cin >> m;
    for (int j = 0; j < m; j++) {
      long long int x;
      cin >> x;
      adj[i].push_back(x);
    }
  }
  for (int i = 0; i < k; i++) {
    if (!vis[a[i]]) dfs(a[i]);
  }
  if (f == 1)
    cout << "-1";
  else {
    cout << st.size() << "\n";
    for (auto u : st) cout << u << " ";
  }
}
