#include<stdio.h>
int V[30],a[20][30],vis[20],v,g,total[30]={0},bian[20],sum=0,T=1,k=0,K=1,t=0;
int check()
{
int i;
for(i=1;i<=v;i++)
{
if(V[i]>total[i]){return 0;}
}
return 1;
}
void fun(int x)
{
int i,j;
if(K==x)
{
if(K==1)
{
for(i=T;i<=g;i++)
{
sum++;k++;bian[k]=i;
for(j=1;j<=v;j++)
{
total[j]=total[j]+a[i][j];
}
if(check()){return;}
for(j=1;j<=v;j++)
{
total[j]=total[j]-a[i][j];
}
sum--;k--;
if(i==g)
{
for(j=1;j<=v;j++)
{
total[j]=0;
}
sum=0;
k=0;
K=K+1;
t=0;
T=1;
fun(1);
return;
}
}
}
else
{
for(i=T;i<=g;i++)
{
sum++;k++;bian[k]=i;
for(j=1;j<=v;j++)
{
total[j]=total[j]+a[i][j];
}
if(check()){return;}
for(j=1;j<=v;j++)
{
total[j]=total[j]-a[i][j];
}
sum--;k--;
if(t==g-K+1&&i==g)
{
for(j=1;j<=v;j++){total[j]=0;}
for(j=1;j<=g;j++){vis[j]=0;bian[j]=0;}
sum=0;
k=0;
K=K+1;
T=1;
t=0;
fun(1);
return;
}
}
}
}
else
{
for(i=T;i<=g+T-K;i++)
if(!vis[i])
{
sum++;k++;bian[k]=i;
for(j=1;j<=v;j++)
{
total[j]=total[j]+a[i][j];
}
vis[i]=1;
if(x==1){t=i;}
T=i+1;
fun(x+1);
if(check()){return;}
vis[i]=0;
for(j=1;j<=v;j++)
{
total[j]=total[j]-a[i][j];
}
sum--;k--;
}
}
}
int main()
{
int i,j;
scanf("%d",&v);
for(i=1;i<=v;i++)
{
scanf("%d",&V[i]);
}
scanf("%d",&g);
for(i=1;i<=g;i++)
{
for(j=1;j<=v;j++)
{
scanf("%lld",&a[i][j]);
}
}
fun(1);
printf("%d",sum);
for(i=1;i<=sum;i++)
{
printf(" %d",bian[i]);
}
}