#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,m,k,cnt,ans,flag,Lim=1001;
int map[1001][1001],a[1001],sum[1001];
void dfs(int x)//搜索第几本书
{
for(int i=0;i<=a[x];i++)//枚举用几本
{
for(int j=1;j<=m;j++)
sum[j]+=map[x][j]*i;//sum代表每一种喜欢的纸的总数
if(x<n) dfs(x+1);
else
{
flag=0;
for(int k=2;k<=m;k++)
{
if(sum[k]!=sum[k-1])//判断是否纸的数量相同
{
flag=1;break;
}
}
if(!flag&&sum[1]*m<Lim&&sum[1]>0)//相同的时候找最小值
Lim=min(Lim,sum[1]*m);
}
for(int j=1;j<=m;j++)//回溯
sum[j]-=map[x][j]*i;
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
scanf("%d",&map[i][j]);
}
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
dfs(1);
if(Lim<=1000) printf("%d\n",Lim);
else printf("alternative!\n");
return 0;
}