Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_DEPRECATE
- #include <cstdio>
- #include <cstdlib>
- #include <cmath>
- #include <cctype>
- #include <cstring>
- #include <ctime>
- #include <iostream>
- #include <algorithm>
- #include <vector>
- #include <deque>
- #include <list>
- #include <set>
- #include <map>
- #include <queue>
- #include <stack>
- #include <string>
- #include <sstream>
- typedef long long int64;
- typedef long long li;
- typedef long double ld;
- using namespace std;
- #define forn(i, n) for(int i = 0; i < int(n); ++i)
- #define fore(i, l, r) for(int i = int(l); i < int(r); ++i)
- #define forb(i, n) for(int i = int(n) - 1; i >= 0; --i)
- #define fr first
- #define sc second
- #define mp make_pair
- #define pb push_back
- const li INF = 1000000002;
- double e = 0.0000001;
- const double pi=3.1415926535897932384626433832795;
- vector<int> ans;
- vector<bool> v;
- vector<vector<int> > a;
- int n, k;
- void gen(int x, int c){
- if (c > n){
- cout << -1;
- exit(0);
- }
- forn(i, a[x].size()){
- if (!v[a[x][i]]){
- gen(a[x][i], c + 1);
- }
- }
- v[x] = 1;
- ans.push_back(x);
- }
- int main(){
- // freopen("input.txt", "r", stdin);
- // freopen("output.txt", "w", stdout);
- cin >> n >> k;
- a.resize(n);
- vector<int> b(k);
- forn(i, k){
- cin >> b[i];
- b[i]--;
- }
- forn(i, n){
- int c;
- cin >> c;
- forn(j, c){
- int d;
- cin >> d;
- d--;
- a[i].push_back(d);
- }
- }
- v.resize(n);
- forn(i, k){
- if (!v[b[i]]){
- gen(b[i], 0);
- }
- }
- cout << ans.size() << endl;
- forn(i, ans.size()){
- cout << ans[i] + 1 << ' ';
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement