#include<bits/stdc++.h>
using namespace std;
const int N=26,M=16;
int v,g,a[N],b[M][N],c[N],ans=99999,l[M];
bool d[M];
bool pd(){
for(int i=1;i<=v;i++){
if(c[i]<a[i])
return false;
}
return true;
}
void dfs(int now){
if(pd()){
if(now-1<ans){
ans=now-1;
int k=1;
for(int i=1;i<=g;i++)
if(d[i]==false)
l[k++]=i;
}
return ;
}
for(int i=1;i<=g;i++){
if(d[i]){
for(int j=1;j<=v;j++) c[j]+=b[i][j];
d[i]=false;
dfs(now+1);
d[i]=true;
for(int j=1;j<=v;j++) c[j]-=b[i][j];
}
}
}
int main(){
std::cin>>v;
memset(d,1,sizeof(d));
for(int i=1;i<=v;i++)
std::cin>>a[i];
std::cin>>g;
for(int i=1;i<=g;i++)
for(int j=1;j<=v;j++)
std::cin>>b[i][j];
dfs(1);
std::cout<<ans<<" ";
for(int i=1;i<=ans;i++){
std::cout<<l[i]<<" ";
}
return 0;
}