#include #include #include using namespace std; long long n, m, c[10096], br, x; struct scene { long long in; vector actors; }; vector a; bool cmp(scene a, scene b) { long long minA = 1000000; long long minB = 1000000; for (size_t i = 0; i < a.actors.size(); i++) minA = min(minA, c[a.actors[i]]); for (size_t i = 0; i < b.actors.size(); i++) minB = min(minB, c[b.actors[i]]); if (minA != minB) return minA < minB; return a.actors.size() < b.actors.size(); } int main() { freopen("star.in", "r", stdin); freopen("star.out", "w", stdout); cin >> n >> m; for (int i = 1; i <= n; i++) cin >> c[i]; a.resize(m + 1); for (int i = 1; i <= m; i++) { cin >> br; a[i].in = i; for (int j = 1; j <= br; j++) { cin >> x; a[i].actors.push_back(x); } } sort(a.begin(), a.end(), cmp); for (int i = 0; i < m; i++) { cout << a[i].in << " "; } return 0; }