50 50
75 71 23 37 28 23 69 75 5 62 3 11 96 100 13 50 57 51 8 90 4 6 84 27 11 89 95 81 10 62 48 52 69 87 97 95 30 74 21 42 36 64 31 80 81 50 56 53 33 99
26 30 5 33 35 29 6 15 36 17 32 16 14 1 29 34 22 40 12 42 38 48 39 50 13 47 18 43 10 8 49 45 11 31 21 37 46 28 20 41 2 7 9 24 27 23 3 44 15 14
 10 10
61 59 97 16 2 94 57 48 91 93
2 8 6 5 3 1 3 4 9 10
 2 1
1 2
1
 3 3
10 20 30
1 2 3
 50 60
86 57 45 93 17 12 40 10 47 80 18 80 3 9 6 55 13 99 5 76 4 70 100 55 27 91 71 3 65 93 41 74 80 56 90 50 58 13 71 9 47 52 26 73 72 21 15 81 88 28
40 32 5 16 49 23 3 17 14 10 1 15 1 21 28 22 13 45 12 25 44 48 46 32 36 43 11 8 49 7 7 35 10 14 39 4 42 10 30 27 1 17 31 15 8 41 44 33 25 26 19 18 29 37 50 6 36 38 47 9
 2 7
20 30
1 1 1 2 2 2 2
 2 2
10 12
2 1
 5 1
16 87 36 16 81
3
 2 3
20 30
1 1 1
 2 10
39 26
1 1 2 2 2 2 2 2 1 2

63929
 2137
 0
 40
 62514
 20
 12
 0
 0
 104


import java.io.*;
import java.util.*;


public class Problem_C 
{
    
    private void run() throws IOException
    {
        // put your code here :)
        int n = nextInt();
        int m = nextInt();
        
        HashMap<Integer, Integer> weights = new HashMap<>();
        
        for (int i = 1; i <= n; i++) {
            weights.put(i, nextInt());
        }
        
        int[] days = new int[m];
        for (int i = 0; i < m; i++) {
            days[i] = nextInt();
        }
        
        // find initial stack
        Stack<Integer> books = new Stack<>();
        boolean[] visited = new boolean[n];
        for (int i = 0; i < days.length; i++) {
            int book_today = days[i];
            if(!visited[book_today-1]){
                books.add(book_today);
                visited[book_today-1] = true;
            }
        }
        Collections.reverse(books);
        
        // calculate minimum total weight
        int total_weight = 0;
        for (int i = 0; i < days.length; i++) {
            int book_to_read = days[i];
            Stack<Integer> spare = new Stack<>();

            int temp = books.peek();
            while(temp != book_to_read){
                int current_book = books.pop();
                total_weight += weights.get(current_book);
                spare.push(current_book);
                if(books.isEmpty()){
                    System.out.println("empty");
                }
                    
                temp = books.peek();
            }
            
            int needed_book = books.pop();
            while(!spare.isEmpty()){
                books.push(spare.pop());
            }
            books.push(needed_book);
        }
        
        System.out.println(total_weight);
        
    }
    
    private int nextInt() throws IOException {
            if (input.hasMoreTokens())
                    return Integer.parseInt(input.nextToken());
            input = new StringTokenizer(in.readLine());
            return nextInt();
    
    }
    
    private void end() throws IOException {
            in.close();
            out.flush();
            out.close();
            System.exit(0);
    }
    
    private BufferedReader in;
    private PrintWriter out;
    private StringTokenizer input;
    
    public Problem_C() throws IOException {
            in = new BufferedReader(new InputStreamReader(System.in));
            out = new PrintWriter(System.out);
            input = new StringTokenizer("");
    }
    
    public static void main(String[] args) throws Exception {
        Problem_C sol = new Problem_C();
            sol.run();
            sol.end();
    }


}
