import java.io.*; import java.util.*; public class Q2 { public static MyScanner in = new MyScanner(); public static PrintWriter out = in.MyOut(); public static MyViewer view = new MyViewer(); static class MyScanner { BufferedReader br; StringTokenizer st; public MyScanner() { br = new BufferedReader(new InputStreamReader(System.in)); } String next() { while (st == null || !st.hasMoreElements()) { try { st = new StringTokenizer(br.readLine()); } catch (IOException e) { e.printStackTrace(); } } return st.nextToken(); } int nextInt() { return Integer.parseInt(next()); } int[] arrayInt(int n) { int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = in.nextInt(); } return a; } long nextLong() { return Long.parseLong(next()); } double nextDouble() { return Double.parseDouble(next()); } String nextLine() { String str = ""; try { str = br.readLine(); } catch (IOException e) { e.printStackTrace(); } return str; } void close() { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } static PrintWriter MyOut() { return new PrintWriter(new BufferedOutputStream(System.out), true); } } static class MyViewer { static boolean print = false; public void on() { print = true; } public void off() { print = false; } public void list(T a) { if (!print) return; out.print("List: ["); for (int i = 0; i < a.size(); i++) { out.print(a.get(i) + ", "); } out.print("'] Len: " + a.size()); } public void array(T[] a) { if (!print) return; out.print("Array: ["); for (int i = 0; i < a.length; i++) { out.print(a[i] + ", "); } out.print("'] Len: " + a.length); } public void array(int[] a) { if (!print) return; out.print("int Array: ["); for (int i = 0; i < a.length; i++) { out.print(a[i] + ", "); } out.print("'] Len: " + a.length); } public void array(long[] a) { if (!print) return; out.print("long Array: ["); for (int i = 0; i < a.length; i++) { out.print(a[i] + ", "); } out.print("'] Len: " + a.length); } public void matrix(int[][] a, int cutoff) { if (cutoff == 0) cutoff = Integer.MAX_VALUE; for (int i = 0; i < a.length; i++) { if (i < cutoff) { printMatrixRow(a[i], cutoff); } else { out.println(" ..."); printMatrixRow(a[a.length - 1], cutoff); break; } } } private void printMatrixRow(int[] a, int cutoff) { for (int j = 0; j < a.length; j++) { if (j < cutoff) { out.printf("%6d ", a[j]); } else { out.printf(" ... %6d", a[a.length - 1]); break; } } out.println(); } } public static void main(String[] args) { int[] a = in.arrayInt(26); String s = in.nextLine(); int max = 0; for(char c: s.toCharArray()) { int b = (int) c - (int)'a'; max = Math.max(max, a[b]); } out.println(max * s.length()); in.close(); } }