#include<bits/stdc++.h>
using namespace std;
int num[10],n,v[10],c,t,q[10][1000000],ans;
long long minn;
string a;
int found(int n)
{
int b[10];
b[1]=n/10000;
b[2]=(n/1000)%10;
b[3]=(n/100)%10;
b[4]=(n/10)%10;
b[5]=n%10;
int w=a.size()-1;
for(int h=5;h>=1;h--)w=q[b[h]][w+1]-2;
if(w!=0)
{
int u=n;
for(int i=1;i<10;i++)u+=num[i]*v[i];
for(int h=5;h>=1;h--)u-=v[b[h]];
return u;
}
return -1;
}
int main()
{
cin>>c>>t;
for(int i=1;i<=t;i++)
{
minn=0;
cin>>a;
for(int k=1;k<10;k++)num[k]=0;
for(int j=0;j<a.size();j++)
for(int k=1;k<10;k++)q[k][j+1]=0;
for(int j=1;j<10;j++)cin>>v[j];
for(int j=0;j<a.size();j++)
{
num[a[j]-48]++;
for(int k=1;k<10;k++)
{
if(a[j]==k+48)q[k][j+1]=j+1;
else q[k][j+1]=q[k][j];
}
}
for(int i=1;i<10;i++)minn+=num[i]*v[i];
for(int s=0;s<100000;s++)
{
long long g=found(s);
if(g<=minn&&g!=-1)minn=g,ans=s;
}
cout<<minn<<endl;
}
}