#include <bits/stdc++.h>
using namespace std;
int a[100];
int dp[100][100];
int v,g;
int x[100];
int bd[100][100];
int bc[100];
int sum=0;
void dfs(int n,int pos){
bool flag=true;
for(int i=1;i<=v;i++){
if(a[i]>0)flag=false;
}
if(flag){
sum++;
for(int i=1;i<=v;i++){
bd[sum][i]=bc[i];
}
return;
}
for(int i=pos;i<=g;i++){
for(int j=1;j<=v;j++){
x[i]-=dp[i][j];
}
bc[n]=i;
dfs(n+1,i+1);
for(int j=1;j<=v;j++){
x[i]+=dp[i][j];
}
bc[n]=0;
}
}
int main(){
cin >> v;
for(int i=1;i<=v;i++)cin >> a[i],x[i]=a[i];
cin >> g;
for(int i=1;i<=g;i++){
for(int j=1;j<=v;j++){
cin >> dp[i][j];
}
}
dfs(0,1);
int id,mi=INT_MAX;
for(int i=1;i<=sum;i++){
int c=0;
for(int j=1;j<=100;j++){
if(bd[i][j]==0)break;
c++;
}
if(c<mi){
id=i;
c=mi;
}
}
for(int i=1;i<=mi;i++){
cout << bd[id][i] << ' ';
}
return 0;
}
希望各位大佬帮忙看看