#include<bits/stdc++.h>
#define int long long
#define INF 1e18+5
using namespace std;
int v[10];
string s;
int minx=INF;
int sum;
void judge(int a,int b,int c,int d,int e,string m){
int ans1=a*10000+b*1000+c*100+d*10+e;
int ans2=v[a]+v[b]+v[c]+v[d]+v[e];
if(s.find(m,0)!=-1&&ans1<=ans2){
int x=ans1+sum-ans2;
minx=min(minx,x);
}else if(s.find(m,0)!=-1&&ans1>ans2){
int x=sum;
minx=min(minx,x);
}
return;
}
signed main(){
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int c;
cin >> c;
int t;
cin >> t;
while(t--){
sum=0;
minx=INF;
cin >> s;
for(int i=1;i<=9;i++){
cin >> v[i];
}
int n=s.size();
for(int i=0;i<n;i++){
sum+=v[s[i]-'0'];
}
for(int a=0;a<=9;a++){
for(int b=0;b<=9;b++){
for(int c=0;c<=9;c++){
for(int d=0;d<=9;d++){
for(int e=0;e<=9;e++){
string m;
m[0]=a+'0';
m[1]=b+'0';
m[2]=c+'0';
m[3]=d+'0';
m[4]=e+'0';
judge(a,b,c,d,e,m);
}
}
}
}
}
cout << minx << '\n';
}
return 0;
}