#include <iostream>
#include <cstdio>
#include <algorithm>
#include<sstream>
#include<queue>
#include<vector>
#include<stdio.h>
#include<deque>
#include<string>
#include<cstdio>
#include<memory.h>
using namespace std;
int f,C, P;
vector<vector<int> > AdjList;
int Flow[1500][1500], p[1500];
void updatePath(int t, int minEdge) {
if (t == 1)
{
f = minEdge;
return;
}
else if (p[t] != -1) {
updatePath(p[t], min(minEdge, Flow[p[t]][t]));
Flow[p[t]][t] -= f;
Flow[t][p[t]] += f;
}
}
int Ed() {
// Note That The Source Equal ( 1 ) And The Sink Equal ( 2 )
int mf = 0;
while (1) {
memset(p, -1, sizeof p);
f = 0;
queue<int> q;q.push(1);
while (!q.empty()) {
int u = q.front();q.pop();
if (u == 2)break;
for (int i = 0; i < AdjList[u].size(); i++) {
int v = AdjList[u][i];
if (p[v] == -1 && Flow[u][v] > 0) {
p[v] = u;
q.push(v);
}
}
}
updatePath(2, (int)1e9);
if (!f)break;
mf += f;
}
return mf;
}
int main(){
//freopen("src.txt", "r", stdin);
while (scanf("%d%d", &C, &P) && (C || P)) {
AdjList.clear();
AdjList.resize(C + P + 10);
memset(Flow, 0, sizeof Flow);
int total = 0;
for (int i = 3 ;i <= C + 2; i++)
{
int z;scanf("%d", &z);
AdjList[1].push_back(i);
Flow[1][i] = z;
total += z;
}
for (int i = 0 ; i < P ; i++) {
int x;scanf("%d", &x);Flow[i + C + 3][2] = 1;AdjList[i + C + 3].push_back(2);
while (x--) {
int c;scanf("%d", &c);
Flow[c + 2][i + C + 3] = 1;
AdjList[c + 2].push_back(i + C + 3);
}
}
if (Ed() == total) {
printf("1\n");
for (int i = 3; i <= C+2 ; i++) {
bool c = 0;
for (int j = 0 ; j < P ; j++) {
if (Flow[j + C + 3][i]) {
if (c)printf(" ");
c = 1;
printf("%d", j + 1);
}
}
printf("\n");
}
}
else {
printf("0\n");
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZTxzc3RyZWFtPgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8dmVjdG9yPgojaW5jbHVkZTxzdGRpby5oPgojaW5jbHVkZTxkZXF1ZT4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPG1lbW9yeS5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgZixDLCBQOwp2ZWN0b3I8dmVjdG9yPGludD4gPiBBZGpMaXN0OwppbnQgRmxvd1sxNTAwXVsxNTAwXSwgcFsxNTAwXTsKdm9pZCB1cGRhdGVQYXRoKGludCB0LCBpbnQgbWluRWRnZSkgewoJaWYgKHQgPT0gMSkKCXsKCQlmID0gbWluRWRnZTsKCQlyZXR1cm47Cgl9CgllbHNlIGlmIChwW3RdICE9IC0xKSB7CgkJdXBkYXRlUGF0aChwW3RdLCBtaW4obWluRWRnZSwgRmxvd1twW3RdXVt0XSkpOwoJCUZsb3dbcFt0XV1bdF0gLT0gZjsKCQlGbG93W3RdW3BbdF1dICs9IGY7Cgl9Cn0KaW50IEVkKCkgewovLyBOb3RlIFRoYXQgVGhlIFNvdXJjZSBFcXVhbCAoIDEgKSBBbmQgVGhlIFNpbmsgRXF1YWwgKCAyICkKCWludCBtZiA9IDA7Cgl3aGlsZSAoMSkgewoJCW1lbXNldChwLCAtMSwgc2l6ZW9mIHApOwoJCWYgPSAwOwoJCXF1ZXVlPGludD4gcTtxLnB1c2goMSk7CgkJd2hpbGUgKCFxLmVtcHR5KCkpIHsKCQkJaW50IHUgPSBxLmZyb250KCk7cS5wb3AoKTsKCQkJaWYgKHUgPT0gMilicmVhazsKCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBBZGpMaXN0W3VdLnNpemUoKTsgaSsrKSB7CgkJCQlpbnQgdiA9IEFkakxpc3RbdV1baV07CgkJCQlpZiAocFt2XSA9PSAtMSAmJiBGbG93W3VdW3ZdID4gMCkgewoJCQkJCXBbdl0gPSB1OwoJCQkJCXEucHVzaCh2KTsKCQkJCX0KCQkJfQoJCX0KCQl1cGRhdGVQYXRoKDIsIChpbnQpMWU5KTsKCQlpZiAoIWYpYnJlYWs7CgkJbWYgKz0gZjsKCX0KCXJldHVybiBtZjsKfQoKaW50IG1haW4oKXsKCS8vZnJlb3Blbigic3JjLnR4dCIsICJyIiwgc3RkaW4pOwoJd2hpbGUgKHNjYW5mKCIlZCVkIiwgJkMsICZQKSAmJiAoQyB8fCBQKSkgewoJCUFkakxpc3QuY2xlYXIoKTsKCQlBZGpMaXN0LnJlc2l6ZShDICsgUCArIDEwKTsKCQltZW1zZXQoRmxvdywgMCwgc2l6ZW9mIEZsb3cpOwoJCWludCB0b3RhbCA9IDA7CgkJZm9yIChpbnQgaSA9IDMgO2kgPD0gQyArIDI7IGkrKykKCQl7CgkJCWludCB6O3NjYW5mKCIlZCIsICZ6KTsKCQkJQWRqTGlzdFsxXS5wdXNoX2JhY2soaSk7CgkJCUZsb3dbMV1baV0gPSB6OwoJCQl0b3RhbCArPSB6OwoJCX0KCQlmb3IgKGludCBpID0gMCA7IGkgPCBQIDsgaSsrKSB7CgkJCWludCB4O3NjYW5mKCIlZCIsICZ4KTtGbG93W2kgKyBDICsgM11bMl0gPSAxO0Fkakxpc3RbaSArIEMgKyAzXS5wdXNoX2JhY2soMik7CgkJCXdoaWxlICh4LS0pIHsKCQkJCWludCBjO3NjYW5mKCIlZCIsICZjKTsKCQkJCUZsb3dbYyArIDJdW2kgKyBDICsgM10gPSAxOwoJCQkJQWRqTGlzdFtjICsgMl0ucHVzaF9iYWNrKGkgKyBDICsgMyk7CgkJCX0KCQl9CgkJaWYgKEVkKCkgPT0gdG90YWwpIHsKCQkJcHJpbnRmKCIxXG4iKTsKCQkJZm9yIChpbnQgaSA9IDM7IGkgPD0gQysyIDsgaSsrKSB7CgkJCWJvb2wgYyA9IDA7CgkJCQlmb3IgKGludCBqID0gMCA7IGogPCBQIDsgaisrKSB7CgkJCQkJaWYgKEZsb3dbaiArIEMgKyAzXVtpXSkgewoJCQkJCQlpZiAoYylwcmludGYoIiAiKTsKCQkJCQkJYyA9IDE7CgkJCQkJCXByaW50ZigiJWQiLCBqICsgMSk7CgkJCQkJfQoJCQkJfQoJCQkJcHJpbnRmKCJcbiIpOwoJCQl9CgkJfQoJCWVsc2UgewoJCQlwcmludGYoIjBcbiIpOwoJCX0KCQkKCX0KCglyZXR1cm4gMDsKfQ==
MyAxNQozIDMgNAoyIDEgMgoxIDMKMSAzCjEgMwoxIDMKMyAxIDIgMwoyIDIgMwoyIDEgMwoxIDIKMSAyCjIgMSAyCjIgMSAzCjIgMSAyCjEgMQozIDEgMiAzCjMgMTUKNyAzIDQKMiAxIDIKMSAxCjEgMgoxIDIKMSAzCjMgMSAyIDMgMiAyIDMKMiAyIDMKMSAyCjEgMgoyIDIgMwoyIDIgMwoyIDEgMgoxIDEKMyAxIDIgMwowIDAK
3 15
3 3 4
2 1 2
1 3
1 3
1 3
1 3
3 1 2 3
2 2 3
2 1 3
1 2
1 2
2 1 2
2 1 3
2 1 2
1 1
3 1 2 3
3 15
7 3 4
2 1 2
1 1
1 2
1 2
1 3
3 1 2 3 2 2 3
2 2 3
1 2
1 2
2 2 3
2 2 3
2 1 2
1 1
3 1 2 3
0 0