#include<bits/stdc++.h>
using namespace std;int n;
int a[1001] , b[1001][1001] , vis[1001] , len = 0 , d[1001] , ans[1001] , ans1[1001];
bool check(int x)
{
memset(ans , 0 , sizeof(ans));
for(int i = 1 ;i <= len;i++)
{
for(int j = 1 ;j <= n;j++)
ans[j] += b[d[i]][j];
}
for(int i = 1 ;i <= n;i++)
if(ans[i] < a[i])
return false;
return true;
}
int minn = 0; int m ;
void dfs(int step , int x)
{
if(step > m)
{
if(check(len))
{
if(minn > len)
{
minn = len;
for(int i = 1 ;i <= len;i++)
ans1[i] = d[i];
}
}
return;
}
for(int i = x ;i <= m;i++)
{
if(vis[i] == 0)
{
len++;
d[len] = i;
vis[i] = 1;
dfs(step + 1 , i);
d[len] = 0;
len--;
vis[i] = 0;
}
}
}
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 >> b[i][j];
dfs(1 , 1);
cout << minn;
for(int i = 1 ;i <= minn;i++)
cout << ans1[i];
return 0;
}