#include <bits/stdc++.h>
using namespace std;
int n;
int m;
int c[500][500];
int b[5004];
int a[5005];
int vis[5005];
bool check()
{
for(int i=1;i<=n;i++)
{
if(b[i]<a[i])return 0;
}
return 1;
}
void dfs(int dep,int t)
{
if(t==dep)
{
if(check())
{
cout<<dep<<" ";
for(int i=1;i<=n;i++)
{
if(vis[i])cout<<i<< " ";
}
exit(0);
}
else
{
return;
}
}
for(int i=1;i<=m;i++)
{
if(vis[i])continue;
vis[i]=1;
for(int j=1;j<=n;j++)
{
b[j]+=c[i][j];
}
dfs(dep,t+1);
vis[i]=0;
for(int j=1;j<=n;j++)
{
b[j]-=c[i][j];
}
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
cin>>m;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
{
cin>>c[i][j];
}
}
for(int i=1;i<=m;i++)
{
memset(b,0,sizeof(b));
dfs(i,0);
}
return 0;
}