import java.util.Scanner;
public class Main{
static int[] need=new int[30];
static int[][] vitami=new int[30][30];
static int[] path=new int[30];
static int[] endpath=new int[30];
static int count;
static int q,v;
static int ans=50000;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
v=sc.nextInt();
for(int i=1;i<=v;i++){
need[i]=sc.nextInt();
}
q=sc.nextInt();
for(int i=1;i<=q;i++){
for(int j=1;j<=v;j++){
vitami[i][j]=sc.nextInt();
}
}
dfs(0,0);
System.out.print(ans);
for(int i=1;i<=ans;i++){
System.out.print(" "+endpath[i]);
}
}
static boolean check(int count){
if(count==0) return false;
for(int i=1;i<=q;i++){
int sum=0;
for(int j=1;j<=count;j++){
sum+=vitami[path[j]][i];
}
if(sum<need[i]) return false;
}
return true;
}
static void dfs(int count,int number){
if(number>q) return;
if(check(count)){
if(count<ans){
ans=count;
for(int i=1;i<=count;i++){
endpath[i]=path[i];
}
}
return;
}
path[count+1]=number+1;
dfs(count+1,number+1);
path[count+1]=0;
dfs(count, number+1);
}
}