/** Al-Amin Mahfuzur Rahman **/ /** Email :- 7mahfuzur.rahman@gmail.com **/ /** University :- Institute of science,trade and technology **/ /**Bro amar code dekhe kono lav nai , ami ekjon faltu coder|temon kisu solve korte pari na, valo lage tei try kori Main() er agee jaa kisu asee shob onno coder der theke copy-paste,kisu asee ja nijer banano **/ #include #define rt return #define LL long long #define sc scanf #define pf printf #define MOD 1000000007 #define PI acos(-1.0) #define NL printf("\n") #define gap printf(" ") #define sz(x) x.size() #define sqr(x) ((x)*(x)) #define dist(x1,x2,y1,y3) sqrt(sqr(x1-x2)+sqr(y1-y2)) /** Vector **/ #define pb(x) push_back(x) #define Maxvec(vector) *max_element(vector.begin(),vector.end()) #define Minvec(vector) *min_element(vector.begin(),vector.end()) #define Cntvec(vector,key) count(vector.begin(),vector.end(),key) #define Revvec(vector) reverse(vector.begin(),vector.end()) #define CLRV(vector) vector.clear() #define EraseV(vector,n) vector.erase(vector.begin(),vector.begin()+n) #define eraseV(vector,n) vector.erase (vector.begin()+n) #define Vswap(v1,v2) v1.swap(v2) /** SET **/ #define setLB(set,n) set.lower_bound(n) #define setUP(set,n) set.upper_bound(n) #define setfind(set,n) set.find(n) #define ins(n) insert(n) /**String **/ #define Revstr(st) reverse(st.begin(),st.end()) #define line(st) getline(cin,st) #define Sswap(st1,st2) st1.swap(st2) #define portxy(st,x,y) st.substr(x,y)/**Portion from a string x to y pos**/ #define portz(st,z) st.substr(z) /**Portion of str from z to last **/ #define sfind(st,key) st.find(key)/** find the pos **/ #define stdlt(st,x,y) st.erase(x,y)/** erase(beg+x)/erase(beg+x,end-y) **/ #define kill(st) st.clear() /** Array **/ #define Cntkey(arr,n,key) count(arr,arr+n,key)/** arr te kotobar key asee ta chking **/ #define Revint(arr,n) reverse(arr,arr+n) #define Maxarr(arr,n) *max_element(arr,arr+n) #define Minarr(arr,n) *min_element(arr,arr+n); /** Array must be sorted before use lower and upper bound **/ #define LB(arr,n,key) *lower_bound(arr,arr+n,key)-1 #define UB(arr,n,key) *upper_bound(arr,arr+n,cnt)-1 #define mem(arr,val) memset(arr,val,sizeof(arr)) #define CLR(a) memset(a,0,sizeof(a)) #define Aswap(a1,a2) a1.swap(a2)/** must a1==a2 **/ #define lp0(i,n) for(i=0;i inline T gcd(T a,T b) {a=abs(a);b=abs(b); if(!b) return a; return gcd(b,a%b);} //template< class T > inline T lcm(T a,T b) {a=abs(a);b=abs(b); return (a/_gcd(a,b))*b;} //template T POW(T b,T p) {T r=1; while(p){if(p&1)r=(r*b);b=(b*b);p>>=1;}return r;} //template T BigMod(T b,T p,T m) {T r=1; while(p){if(p&1)r=(r*b)%m;b=(b*b)%m;p>>=1;}return r;} //template T ModInverse(T n,T m) { return BigMod(n,m-2,m)}; //bool isVowel(char ch){ ch=toupper(ch); if(ch=='A'||ch=='U'||ch=='I'||ch=='O'||ch=='E') return true; return false;} //bool isConst(char ch){if (isalpha(ch) && !isVowel(ch)) return true; return false;} //int toint(string s) { int sm; stringstream ss(s); ss>>sm; return sm;/** st=123 to int=123 **/ } //template string tostring(T n) {stringstream ss; ss << n; return ss.str();} //int xmove[8]={2, 1, -1, -2, -2, -1, 1, 2};//knight's x's 8move //int ymove[8]={1, 2, 2, 1, -1, -2, -2, -1};//knight's y's 8move int main() { int arr[26],i,j,k,l; lp0(i,26)cin>>arr[i]; string st;cin>>st;l=sz(st); int ar[l]; lp0(i,l) { j=st[i]-97; ar[i]=arr[j]; } k=Maxarr(ar,l); l=l*k;cout<