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.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Stack;
import java.util.StringTokenizer;

/**
 *
 * @author Aditya Joshi
 * SPOJ / CodeChef / Codeforces / HackerRank / Timus / UVA
 */
public class Main 
{
    private static MyScanner sc;
    private static PrintWriter out;
    private static int[] b;
    private static int[] w;
    private static int[] ans;
    private static int[] freq;
    private static int n;
    private static int m;
    public static void main(String[] args)
    {
        sc = new MyScanner();
        out = new PrintWriter(System.out);
        n = sc.nextInt();
        m = sc.nextInt();
        w = new int[n];
        for(int i = 0; i < n; i++) w[i] = sc.nextInt();
        
        b = new int[m];
        freq = new int[n + 1];
        for(int i = 0; i < m; i++)
        {
            b[i] = sc.nextInt();
            freq[b[i]] += 1;
        }
        
        //sort the array based on heuristics.
        sort();
        
        // simulate the process
        
        long final_answer = 0;
        
        Stack<Integer> s = new Stack();
        for(int i = n - 1; i >= 0; i--) s.add(ans[i]);
        int countdown = m;
        int curr = 0;
        ArrayList<Integer> reserve;
        while(countdown > 0)
        {
            reserve = new ArrayList();
            int want = b[curr];
            
            while(true)
            {
                if(s.peek() == want)
                {
                    s.pop();
                    for(int j = reserve.size() - 1; j >= 0; j--) s.add(reserve.get(j));
                    s.add(want);
                    break;
                }
                
                else
                {
                    int o = s.pop();
                    final_answer += w[o - 1];
                    reserve.add(o);
                }
            }
            
            countdown--;
            curr++;
        
        }
        
        out.println(final_answer);
        out.close();
    }
    
    private static void sort()
    {
        ans = new int[n];
        for(int i = 0; i < n; i++) ans[i] = i + 1;
        
        for(int i = 0; i < n; i++)
        {
            for(int j = i + 1; j < n; j++)
            {
                if(freq[ans[i]] < freq[ans[j]])
                {
                    int temp = ans[i];
                    ans[i] = ans[j];
                    ans[j] = temp;
                }
                
                else if(freq[ans[i]] == freq[ans[j]] && w[ans[j] - 1] < w[ans[i] - 1])
                {
                    int temp = ans[i];
                    ans[i] = ans[j];
                    ans[j] = temp;
                    
                }
            }
        
        }
    
    }
    
    private static int max(int a, int b)
    {
        if(a > b) return a;
        else return b;
    }

    private static int min(int a, int b)
    {
        if(a < b) return a;
        else return b;

    }

 private static int abs(int a, int b)
    {
        return (int) Math.abs(a - b);
    }
    
     public static int modexp(int a, int b, int n) 
     {
        if (b == 0) return 1;
        long t = modexp(a, b/2, n);  
        long c = (t * t) % n;
        if (b % 2 == 1)
           c = (c * a) % n;
        return (int) c;
    }
    
 public 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());
      }
 
      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;
      }

   }
}
