#include<bits/stdc++.h>
using namespace std;
int v,g;
int vetas[30],ciliao[20][20];
int minn=35;
int data[30][30];
int nowvetas[36];
int fa=1;
int zzfa;
bool pd()
{
for(int i=1;i<=v;i++)
{
if(nowvetas[i]<vetas[i])
return false;
}
return true;
}
void print()
{
cout<<minn<<" ";
for(int i=1;i<=minn;i++)
cout<<data[zzfa][i]<<" ";
return;
}
void dfs(int dep,int now,int count)
{
for(int i=1;i<=v;i++)
{
nowvetas[i]+=ciliao[now][i];
}
data[fa][count]=now;
if(pd()&&count<minn)
{
minn=count;
zzfa=fa;
fa++;
return;
}
for(int i=now+1;i<=g;i++)
{
dfs(dep+1,i,count+1);
for(int j=1;j<=v;j++)
{
nowvetas[j]-=ciliao[i][j];
}
}
}
int main()
{
cin>>v;
for(int i=1;i<=v;i++)
cin>>vetas[i];
cin>>g;
for(int i=1;i<=g;i++)
for(int j=1;j<=v;j++)
cin>>ciliao[i][j];
dfs(1,0,0);
print();
return 0;
}