Source Code
#include <bits/stdc++.h>

using namespace std;

#pragma GCC optimize("-ffast-math")
#pragma GCC optimize("Ofast,no-stack-protector,unroll-loops,fast-math,O3")
#pragma GCC optimize("-Ofast")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,sse4.2,popcnt,abm,mmx,avx2,tune=native")
#pragma GCC optimize("-funroll-loops")
#pragma GCC optimize("-funroll-all-loops,-fpeel-loops,-funswitch-loops")

typedef long long ll;
typedef unsigned long long ull;
#define int ll
#define forn(i, x, n) for (int i = x; i <= n; i++)
#define forn(i, n) for (int i = 0; i < n; i++)
#define cin(fib, n) forn(i, n) cin >> fib[i]
#define cout(fib, n) forn(i, n) cout << fib[i] << ' '
#define FastIO ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define all(fib) fib.begin(), fib.end()
#define alln(fib, n) fib, fib + n
#define rall(fib) fib.rbegin(), fib.rend()
#define yes cout << "YES"
#define no cout << "NO"
#define yn(b) (b ? yes : no)
#define pb push_back
#define nl cout << "\n"
#define minPQ priority_queue<int, vector<int>, greater<int>>
#define vi vector<int>
#define vs vector<string>
const int mod = 1000000007;
const int N = 1000010;
const int oo = LONG_LONG_MAX;

bool vis[N];
void solve() {

int n,m;
cin>>n>>m;

int q; cin>>q;

forn(i,q)
{
    int x; cin>>x;
    vis[x]=1;
}

vector<vector<int>>ans;
map<vi , int> idk;
for(int i=1 ; i<= n ; i++)
{
    vi a;
    int t; cin>>t;
    bool flg=1;
    while(t--)
    {
        int x; cin>>x;
        if(!vis[x])
            flg=0;

        a.pb(x);
    }

    idk[a]=i;
    if(flg)
    {
        ans.pb(a);
    }

}
    map<int , int> mp;
for(auto &v : ans)
    for(auto u: v)
        mp[u]++;

vi vv;
int idx=1;
    for(auto &v : ans) {
        for (auto u: v)
            if (mp[u] == 1) {
                vv.pb(idk[v]);
                break;
            }
        idx++;
    }

    sort(all(vv));
    cout<<vv.size()<<endl;

    cout(vv,vv.size());

}


    signed main()
{
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif

    FastIO;
    int t = 1;
    //cin>>t;

    while (t--)
    {
        solve();
        nl;
    }


    return 0;
}
Copy
Projects mhna
GNU G++17
2079 ms
106.0 MB
Time Limit Exceeded