#include<iostream>
#include<queue>
using namespace std;
struct wss
{
int ans;
int num[30];
int wtm[30];
};
int v,wtm[10000];
int g,sl[10000][10000];
int ans;
queue<wss> q;
int main(){
cin>>v;
for(int i=0;i<v;i++){
cin>>wtm[i];
}
cin>>g;
for(int i=0;i<g;i++){
for(int j=0;j<v;j++){
cin>>sl[i][j];
}
}
for(int i=1;i<=g;i++)
{
wss n1;
n1.ans=1;
n1.num[n1.ans]=i;
for(int j=0;j<v;j++){
n1.wtm[j]=sl[i][j];
}
q.push(n1);
}
while(!q.empty())
{
wss n1;
n1=q.front();
q.pop();
bool b=true;
for(int i=0;i<v;i++)
{
b=b&&(n1.wtm[i]>=wtm[i]);
}
if(b)
{
cout<<n1.ans;
for(int i=0;i<n1.ans;i++)cout<<n1.num[i]<<" ";
return 0;
}
int start=n1.num[n1.ans];
for(int i=start+1;i<=g;i++)
{
wss n2;
n2.ans=n1.ans+1;
n2.num[n2.ans]=i;
for(int j=1;j<=v;j++)
n2.wtm[j]=n1.wtm[j]+sl[i][j];
q.push(n2);
}
}
return 0;
}