/*input 3 1 2 3 */ #include #include #include using namespace std; long long mod=1e9+7; typedef long long unsigned llu; typedef long long int lld; typedef long ld; #define rep(i,a,n) for(long long int i = (a); i <= (n); ++i) #define repI(i,a,n) for(int i = (a); i <= (n); ++i) #define repD(i,a,n) for(long long int i = (a); i >= (n); --i) #define repDI(i,a,n) for(int i = (a); i >= (n); --i) #define pb push_back #define mp make_pair #define ff first #define ss second #define sc(a) scanf("%lld",&a) #define sc2(a,b) scanf("%lld%lld",&a,&b) #define sc3(a,b,c) scanf("%lld%lld%lld",&a,&b,&c) #define scd(a) scanf("%d",&a) #define scd2(a,b) scanf("%d%d",&a,&b) #define scd3(a,b,c) scanf("%d%d%d",&a,&b,&c) #define scf(a) scanf("%lf",&a) #define scf2(a,b) scanf("%lf%lf",&a,&b) #define scf3(a,b,c) scanf("%lf%lf%lf",&a,&b,&c) #define prL(a) printf("%lld\n",a) #define prS(a) printf("%lld ",a) #define prdL(a) printf("%d\n",a) #define prdS(a) printf("%d ",a) #define prfL(a) printf("%lf\n",a) #define prfS(a) printf("%lf ",a) #define popcount __builtin_popcountll #define swap(a,b,t) t=a;a=b;b=t typedef pair PA; #define lim 1000003 #define lim2 1003 inline lld sqr(lld x) { return x * x; } // map,lld> M; // map M,My; // map M; // deque Q; // map::iterator it; // std::ios::sync_with_stdio(false); // multiset S; // set S; // vector V[lim]; // bool dp[1002][12][12]; // priority_queue Q; // lld A[lim],B[lim],C[lim]; lld A[lim],B[lim]; // string S[lim],R[lim]; // char S[lim]; // lld X[lim],Y[lim]; // PA P[lim]; // lld dp[1<<18]; lld one,zero,ansR,numNodes; int main(){ // std::ios::sync_with_stdio(false); lld T,i,j,h,l,r,k,s,b,c,a,d,q,p,n,m,w,x,y,v,z,t,curr,prev,sum,ans,pos,val,countA,secondMin,indicator; rep(i,0,25) sc(A[i]); string S; cin>>S; n=S.size(); t=0; rep(i,0,n-1) t=max(t,A[S[i]-'a']); prL(t*n); return 0; }