#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <climits>
#include <algorithm>
using namespace std;
#define lli long long int
#define INF 1000000
#define ND 200
#define ED 10000
int n,m,eg_no,st,en;
int to[ED],last[ND],nx[ED],hlf[ND],ds[ND],Q[ND],cap[ED],cap1[ED];
void init()
{
eg_no=0;
memset(last,-1,sizeof(last));
}
void add_edge(int u,int v,int cp,int r_cp)
{
to[eg_no]=v;cap1[eg_no]=cp;cap[eg_no]=cp;nx[eg_no]=last[u];last[u]=eg_no++;
to[eg_no]=u;cap1[eg_no]=r_cp;cap[eg_no]=r_cp;nx[eg_no]=last[v];last[v]=eg_no++;
}
bool bfs()
{
memset(ds,-1,sizeof(ds));
ds[st]=0;int p=1,q=0;Q[0]=st;
while(q<p)
{
int u=Q[q];
for(int i=last[u];i>=0;i=nx[i])
{
int v=to[i];
if(cap[i]>0 && ds[v]==-1)
{
ds[v]=ds[u]+1;
Q[p++]=v;
}
}
q++;
}
return (ds[en]!=-1);
}
int dfs(int in,int cp)
{
if(in==en) return cp;
for(int &i=hlf[in];i>=0;i=nx[i])
{
if(cap[i]>0 && ds[in]+1==ds[to[i]])
{
int tmp=dfs(to[i],min(cp,cap[i]));
if(tmp>0)
{
cap[i]-=tmp;
cap[i^1]+=tmp;
return tmp;
}
}
}
return 0;
}
int dinitz()
{
int res=0;
while(bfs())
{
for(int i=0;i<=en;i++) hlf[i]=last[i];
while(1)
{
int ans=dfs(st,INF);
res+=ans;
if(ans<=0) break;
}
}
return res;
}
void func()
{
//freopen("test.txt","r",stdin);
//freopen("testo.txt","w",stdout);
int no=0;
int n;
cin>>n;
int ct[10];
for(int i=1;i<=9;i++) cin>>ct[i];
vector<int>v[n+1];
for(int i=1;i<=n;i++)
{
int k,ele;
cin>>k;
for(int j=1;j<=k;j++)
{
cin>>ele;
v[i].push_back(ele);
}
}
vector<int>an;
int se=1,fl;
st=n+9+1,en=n+9+2;
while(1)
{
if(se>n) break;
fl=0;
int ans=-1;
for(int i=0;i<v[se].size();i++)
{
int p=v[se][i];
ans=p;
if(ct[p]<=0) continue;
ct[p]--;
init();
for(int j=se+1;j<=n;j++) add_edge(st,j,1,0);
for(int j=1;j<=9;j++)
if(ct[j]>0)
add_edge(n+j,en,ct[j],0);
for(int j=se+1;j<=n;j++)
for(int k=0;k<v[j].size();k++)
add_edge(j,n+v[j][k],1,0);
int m=dinitz();
if(m==(n-se))
{
fl=1;
break;
}
ct[p]++;
}
if(fl==0)
{
no=1;
break;
}
an.push_back(ans);
se++;
}
if(no==0)
{
for(int i=0;i<an.size();i++) cout<<an[i]<<" ";
cout<<"\n";
}
else cout<<"It seems MSG\n";
}
int main()
{
int t;
t=1;
while(t--)
{
func();
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxhbGdvcml0aG0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGxpIGxvbmcgbG9uZyBpbnQKI2RlZmluZSBJTkYgMTAwMDAwMAojZGVmaW5lIE5EIDIwMAojZGVmaW5lIEVEIDEwMDAwCmludCBuLG0sZWdfbm8sc3QsZW47CmludCB0b1tFRF0sbGFzdFtORF0sbnhbRURdLGhsZltORF0sZHNbTkRdLFFbTkRdLGNhcFtFRF0sY2FwMVtFRF07CnZvaWQgaW5pdCgpCnsKICAgIGVnX25vPTA7CiAgICBtZW1zZXQobGFzdCwtMSxzaXplb2YobGFzdCkpOwp9CnZvaWQgYWRkX2VkZ2UoaW50IHUsaW50IHYsaW50IGNwLGludCByX2NwKQp7CiAgICB0b1tlZ19ub109djtjYXAxW2VnX25vXT1jcDtjYXBbZWdfbm9dPWNwO254W2VnX25vXT1sYXN0W3VdO2xhc3RbdV09ZWdfbm8rKzsKICAgIHRvW2VnX25vXT11O2NhcDFbZWdfbm9dPXJfY3A7Y2FwW2VnX25vXT1yX2NwO254W2VnX25vXT1sYXN0W3ZdO2xhc3Rbdl09ZWdfbm8rKzsKfQpib29sIGJmcygpCnsKICAgIG1lbXNldChkcywtMSxzaXplb2YoZHMpKTsKICAgIGRzW3N0XT0wO2ludCBwPTEscT0wO1FbMF09c3Q7CiAgICB3aGlsZShxPHApCiAgICB7CiAgICAgICAgaW50IHU9UVtxXTsKICAgICAgICBmb3IoaW50IGk9bGFzdFt1XTtpPj0wO2k9bnhbaV0pCiAgICAgICAgewogICAgICAgICAgICBpbnQgdj10b1tpXTsKICAgICAgICAgICAgaWYoY2FwW2ldPjAgJiYgZHNbdl09PS0xKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBkc1t2XT1kc1t1XSsxOwogICAgICAgICAgICAgICAgUVtwKytdPXY7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcSsrOwogICAgfQogICAgcmV0dXJuIChkc1tlbl0hPS0xKTsKfQppbnQgZGZzKGludCBpbixpbnQgY3ApCnsKICAgIGlmKGluPT1lbikgcmV0dXJuIGNwOwogICAgZm9yKGludCAmaT1obGZbaW5dO2k+PTA7aT1ueFtpXSkKICAgIHsKICAgICAgICBpZihjYXBbaV0+MCAmJiBkc1tpbl0rMT09ZHNbdG9baV1dKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHRtcD1kZnModG9baV0sbWluKGNwLGNhcFtpXSkpOwogICAgICAgICAgICBpZih0bXA+MCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgY2FwW2ldLT10bXA7CiAgICAgICAgICAgICAgICBjYXBbaV4xXSs9dG1wOwogICAgICAgICAgICAgICAgcmV0dXJuIHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwp9CmludCBkaW5pdHooKQp7CiAgICBpbnQgcmVzPTA7CiAgICB3aGlsZShiZnMoKSkKICAgIHsKICAgICAgICBmb3IoaW50IGk9MDtpPD1lbjtpKyspIGhsZltpXT1sYXN0W2ldOwogICAgICAgIHdoaWxlKDEpCiAgICAgICAgewogICAgICAgICAgICBpbnQgYW5zPWRmcyhzdCxJTkYpOwogICAgICAgICAgICByZXMrPWFuczsKICAgICAgICAgICAgaWYoYW5zPD0wKSBicmVhazsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gcmVzOwp9CnZvaWQgZnVuYygpCnsKCS8vZnJlb3BlbigidGVzdC50eHQiLCJyIixzdGRpbik7CgkvL2ZyZW9wZW4oInRlc3RvLnR4dCIsInciLHN0ZG91dCk7CgoJaW50IG5vPTA7CgoJaW50IG47CgljaW4+Pm47CglpbnQgY3RbMTBdOwoJZm9yKGludCBpPTE7aTw9OTtpKyspIGNpbj4+Y3RbaV07Cgl2ZWN0b3I8aW50PnZbbisxXTsKCWZvcihpbnQgaT0xO2k8PW47aSsrKQoJewoJCWludCBrLGVsZTsKCQljaW4+Pms7CgkJZm9yKGludCBqPTE7ajw9aztqKyspCgkJewoJCQljaW4+PmVsZTsKCQkJdltpXS5wdXNoX2JhY2soZWxlKTsKCQl9Cgl9CgoJdmVjdG9yPGludD5hbjsKCWludCBzZT0xLGZsOwoJc3Q9bis5KzEsZW49bis5KzI7Cgl3aGlsZSgxKQoJewoJCWlmKHNlPm4pIGJyZWFrOwoJCWZsPTA7CgkJaW50IGFucz0tMTsKCQlmb3IoaW50IGk9MDtpPHZbc2VdLnNpemUoKTtpKyspCgkJewoJCQlpbnQgcD12W3NlXVtpXTsKCQkJYW5zPXA7CgkJCWlmKGN0W3BdPD0wKSBjb250aW51ZTsKCgkJCWN0W3BdLS07CgoJCQlpbml0KCk7CgkJCWZvcihpbnQgaj1zZSsxO2o8PW47aisrKSBhZGRfZWRnZShzdCxqLDEsMCk7CgkJCWZvcihpbnQgaj0xO2o8PTk7aisrKQoJCQkJaWYoY3Rbal0+MCkKCQkJCQlhZGRfZWRnZShuK2osZW4sY3Rbal0sMCk7CgkJCWZvcihpbnQgaj1zZSsxO2o8PW47aisrKQoJCQkJZm9yKGludCBrPTA7azx2W2pdLnNpemUoKTtrKyspCgkJCQkJYWRkX2VkZ2UoaixuK3Zbal1ba10sMSwwKTsKCgkJCWludCBtPWRpbml0eigpOwoJCQlpZihtPT0obi1zZSkpCgkJCXsKCQkJCWZsPTE7CgkJCQlicmVhazsKCQkJfQoJCQljdFtwXSsrOwoJCX0KCQlpZihmbD09MCkKCQl7CgkJCW5vPTE7CgkJCWJyZWFrOwoJCX0KCQlhbi5wdXNoX2JhY2soYW5zKTsKCQlzZSsrOwoJfQoJaWYobm89PTApCgl7CgkJZm9yKGludCBpPTA7aTxhbi5zaXplKCk7aSsrKSBjb3V0PDxhbltpXTw8IiAiOwoJCWNvdXQ8PCJcbiI7Cgl9CgllbHNlIGNvdXQ8PCJJdCBzZWVtcyBNU0dcbiI7Cn0KaW50IG1haW4oKQp7CglpbnQgdDsKCXQ9MTsKCXdoaWxlKHQtLSkKCXsKCQlmdW5jKCk7Cgl9CglyZXR1cm4gMDsKfQ==