#include <vector>
#include <list>
#include <map>
#include <set>
#include <queue>
#include <deque>
#include <stack>
#include <string>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstring>
#include <climits>
#include <cctype>
#include <cassert>
using namespace std;
#define ull unsigned long long
#define ill long long int
#define pii pair<int,int>
#define pb(x) push_back(x)
#define F(i,a,n) for(i=(a);i<(n);++i)
#define FD(i,a,n) for(int i=(a);i>=(n);--i)
#define FE(it,x) for(it=x.begin();it!=x.end();++it)
#define V(x) vector<x>
#define S(x) scanf("%d",&x)
#define Sl(x) scanf("%lld",&x)
#define M(x,i) memset(x,i,sizeof(x))
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define debug(i,sz,x) F(i,0,sz){cout<<x[i]<<" ";}cout<<endl
#define fr first
#define se second
/* Relevant code begins here */
#define MOD 1000000007
int cnt[11], matchR[101];
bool arr[101][101];
int n;
bool bpm(bool bpGraph[101][101], int u, bool seen[])
{
for (int v = 100; v >= 0; v--)
{
if (bpGraph[u][v] && !seen[v])
{
seen[v] = true; // Mark v as visited
if (matchR[v] < 0 || bpm(bpGraph, matchR[v], seen))
{
matchR[v] = u;
return true;
}
}
}
return false;
}
int maxBPM(bool bpGraph[101][101])
{
memset(matchR, -1, sizeof(matchR));
int result = 0; // Count of jobs assigned to applicants
for (int u = 0; u < n; u++)
{
// Mark all jobs as not seen for next applicant.
bool seen[101];
memset(seen, 0, sizeof(seen));
// Find if the applicant 'u' can get a job
if (bpm(bpGraph, u, seen))
result++;
}
return result;
}
int main()
{
int i, j, k, m;
S(n);
F(i, 1, 10) S(cnt[i]);
F(i, 0, n) {
S(k);
F(j, 0, k) {
S(m);
int l;
F(l, 0, cnt[m]) {
arr[i][m*10+l] = 1;
//printf("%d %d\n", i, m*10 + l);
}
}
}
int res = maxBPM(arr);
if (res < n) printf("It seems MSG\n");
else {
int arr2[101];
F(i, 0, 101) {
if (matchR[i] != -1) {
arr2[matchR[i]] = i/10;
}
}
F(i, 0, n) printf("%d ", arr2[i]);
printf("\n");
}
return 0;
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxxdWV1ZT4KI2luY2x1ZGUgPGRlcXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPGNhc3NlcnQ+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSB1bGwgdW5zaWduZWQgbG9uZyBsb25nCiNkZWZpbmUgaWxsIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBwaWkgcGFpcjxpbnQsaW50PgojZGVmaW5lIHBiKHgpIHB1c2hfYmFjayh4KQojZGVmaW5lIEYoaSxhLG4pIGZvcihpPShhKTtpPChuKTsrK2kpCiNkZWZpbmUgRkQoaSxhLG4pIGZvcihpbnQgaT0oYSk7aT49KG4pOy0taSkKI2RlZmluZSBGRShpdCx4KSBmb3IoaXQ9eC5iZWdpbigpO2l0IT14LmVuZCgpOysraXQpCiNkZWZpbmUgVih4KSB2ZWN0b3I8eD4KI2RlZmluZSBTKHgpIHNjYW5mKCIlZCIsJngpCiNkZWZpbmUgU2woeCkgc2NhbmYoIiVsbGQiLCZ4KQojZGVmaW5lIE0oeCxpKSBtZW1zZXQoeCxpLHNpemVvZih4KSkKI2RlZmluZSBhbGwoeCkgeC5iZWdpbigpLCB4LmVuZCgpCiNkZWZpbmUgcmFsbCh4KSB4LnJiZWdpbigpLCB4LnJlbmQoKQojZGVmaW5lIGRlYnVnKGksc3oseCkgRihpLDAsc3ope2NvdXQ8PHhbaV08PCIgIjt9Y291dDw8ZW5kbAojZGVmaW5lIGZyIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCgovKiBSZWxldmFudCBjb2RlIGJlZ2lucyBoZXJlICovCgojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CgppbnQgY250WzExXSwgbWF0Y2hSWzEwMV07CmJvb2wgYXJyWzEwMV1bMTAxXTsKaW50IG47Cgpib29sIGJwbShib29sIGJwR3JhcGhbMTAxXVsxMDFdLCBpbnQgdSwgYm9vbCBzZWVuW10pCnsKICAgIGZvciAoaW50IHYgPSAxMDA7IHYgPj0gMDsgdi0tKQogICAgewogICAgICAgIGlmIChicEdyYXBoW3VdW3ZdICYmICFzZWVuW3ZdKQogICAgICAgIHsKICAgICAgICAgICAgc2Vlblt2XSA9IHRydWU7IC8vIE1hcmsgdiBhcyB2aXNpdGVkCiAgICAgICAgICAgIGlmIChtYXRjaFJbdl0gPCAwIHx8IGJwbShicEdyYXBoLCBtYXRjaFJbdl0sIHNlZW4pKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBtYXRjaFJbdl0gPSB1OwogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KIAppbnQgbWF4QlBNKGJvb2wgYnBHcmFwaFsxMDFdWzEwMV0pCnsKICAgIG1lbXNldChtYXRjaFIsIC0xLCBzaXplb2YobWF0Y2hSKSk7CiAKICAgIGludCByZXN1bHQgPSAwOyAvLyBDb3VudCBvZiBqb2JzIGFzc2lnbmVkIHRvIGFwcGxpY2FudHMKICAgIGZvciAoaW50IHUgPSAwOyB1IDwgbjsgdSsrKQogICAgewogICAgICAgIC8vIE1hcmsgYWxsIGpvYnMgYXMgbm90IHNlZW4gZm9yIG5leHQgYXBwbGljYW50LgogICAgICAgIGJvb2wgc2VlblsxMDFdOwogICAgICAgIG1lbXNldChzZWVuLCAwLCBzaXplb2Yoc2VlbikpOwogCiAgICAgICAgLy8gRmluZCBpZiB0aGUgYXBwbGljYW50ICd1JyBjYW4gZ2V0IGEgam9iCiAgICAgICAgaWYgKGJwbShicEdyYXBoLCB1LCBzZWVuKSkKICAgICAgICAgICAgcmVzdWx0Kys7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbigpCnsKCWludCBpLCBqLCBrLCBtOwoJCglTKG4pOwoJCglGKGksIDEsIDEwKSBTKGNudFtpXSk7CgkKCUYoaSwgMCwgbikgewoJCVMoayk7CgkJRihqLCAwLCBrKSB7CgkJCVMobSk7CgkJCWludCBsOwoJCQlGKGwsIDAsIGNudFttXSkgewoJCQkJYXJyW2ldW20qMTArbF0gPSAxOwoJCQkJLy9wcmludGYoIiVkICVkXG4iLCBpLCBtKjEwICArIGwpOwoJCQl9CgkJfQoJfQoJCglpbnQgcmVzID0gbWF4QlBNKGFycik7CglpZiAocmVzIDwgbikgcHJpbnRmKCJJdCBzZWVtcyBNU0dcbiIpOwoJZWxzZSB7CgkJaW50IGFycjJbMTAxXTsKCQlGKGksIDAsIDEwMSkgewoJCQlpZiAobWF0Y2hSW2ldICE9IC0xKSB7CgkJCQlhcnIyW21hdGNoUltpXV0gPSBpLzEwOwoJCQl9CgkJfQoJCUYoaSwgMCwgbikgcHJpbnRmKCIlZCAiLCBhcnIyW2ldKTsKCQlwcmludGYoIlxuIik7Cgl9CglyZXR1cm4gMDsKfQ==