#include<bits/stdc++.h>
using namespace std;
int a[50][50],b[50];
int n,m;
struct node{
int ws[30];
int num[30];
int ans;
}q;
void bfs()
{
queue<node>que;
q=que.front();
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
q.ws[j]=a[i][j];
q.num[1]=i;
q.ans=1;
que.push(q);
}
while(!que.empty())
{
node s,t;
s=que.front();
t=que.front();
que.pop();
bool w=1;
for(int i=1;i<=n;i++)
{
if(s.ws[i]<b[i])
{
w=0;
break;
}
}
if(w==1)
{
cout<<s.ans<<' ';
for(int i=1;i<=s.ans;i++)cout<<s.ws[i]<<" ";
return;
}
for(int i=s.num[s.ans]+1;i<=m;i++)
{
for(int j=1;j<=n;j++)
t.ws[j]=s.ws[j]+a[i][j];
t.ans=s.ans+1;
t.num[t.ans]=i;
que.push(t);
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>b[i];
cin>>m;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
bfs();
return 0;
}