#include<iostream>
using namespace std;
const int INF=0x3f3f3f3f;
int vita[30],fod[30][30],st[30],final_ans[30];
int v,g,minx=INF;
void dfs(int now,int all,int ans[30]){
bool flag=true;
for(int i=1;i<=v;i++){
if(vita[v]>0) flag=false;
}
if(flag==true){
if(all<minx){
minx=all;
for(int i=1;i<=all;i++){
final_ans[i]=ans[i];
}
}
return;
}
for(int i=now+1;i<=g;i++){
for(int j=1;j<=v;j++){
vita[j]-=fod[i][j];
}
ans[all+1]=i;
dfs(i,all+1,ans);
for(int j=1;j<=v;j++){
vita[j]+=fod[i][j];
}
}
}
int main(){
cin>>v;
for(int i=1;i<=v;i++){
cin>>vita[i];
}
cin>>g;
for(int i=1;i<=g;i++){
for(int j=1;j<=v;j++){
cin>>fod[i][j];
}
}
dfs(0,0,st);
cout<<minx<<" ";
for(int i=1;i<=minx;i++){
cout<<final_ans[i]<<" ";
}
return 0;
}