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.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Arrays;
import java.util.StringTokenizer;

public class A488 {
	public static String[] thanks = { "vaporeon", "jolteon", "flareon",
			"espeon", "umbreon", "leafeon", "glaceon", "sylveon" };
	public static PrintWriter out;

	public static void main(String[] Args) throws Exception {
		FastScanner sc = new FastScanner(System.in);
		out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
				System.out)));
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] loc = new int[n];
		Arrays.fill(loc, n + 2);
		int[] ws = new int[n];
		for (int k = 0; k < n; k++) {
			ws[k] = sc.nextInt();
		}
		long ans = 0;
		for (int j = 0; j < m; j++) {
			int ind = sc.nextInt() - 1;
			for (int i = 0; i < n; i++) {
				if (loc[i] < loc[ind]) {
					loc[i]++;
					ans += ws[i];
				}
			}
			loc[ind] = 0;
		}
		out.println(ans);
		out.close();
	}

	public static class FastScanner {
		StringTokenizer st;
		BufferedReader br;

		FastScanner(InputStream in) throws IOException {
			br = new BufferedReader(new InputStreamReader(in));
			st = new StringTokenizer(br.readLine());
		}

		String next() throws IOException {
			if (st.hasMoreTokens())
				return st.nextToken();
			st = new StringTokenizer(br.readLine());
			return next();
		}

		int nextInt() throws NumberFormatException, IOException {
			return Integer.parseInt(next());
		}
	}

	public static long[][] matPowExp(long[][] mat, long exp, long mod)
			throws Exception {
		if (exp == 0) {
			return new long[][] { { 1, 0 }, { 0, 1 } };
		}
		if (exp == 1) {
			return mat;
		}
		long[][] builder = matPowExp(mat, exp / 2, mod);
		long[][] ret = matMult(builder, builder, mod);

		if (exp % 2 == 1) {
			ret = matMult(ret, mat, mod);
		}

		return ret;
	}

	public static long[][] matMult(long[][] a, long[][] b, long mod)
			throws Exception {
		if (a[0].length != b.length) {
			throw new Exception("Bad matrix dimensions");
		}

		long[][] c = new long[a.length][b[0].length];

		for (int k = 0; k < a.length; k++) {
			for (int j = 0; j < b[0].length; j++) {
				for (int i = 0; i < a[0].length; i++) {
					c[k][j] += a[k][i] * b[i][j];
					c[k][j] %= mod;
				}
			}
		}

		return c;
	}

	private static long choo(int k, int n) {
		if (k < 0 || k > n)
			return 0;
		long ret = fact(n) / (fact(k) * fact(n - k));
		return ret;
	}

	private static long fact(int n) {
		if (n == 0 || n == 1)
			return 1;
		return fact(n - 1) * n;
	}

	private static long gcd(long a, long b) {
		return (b == 0) ? a : gcd(b, a % b);
	}

	public static class Pair implements Comparable<Pair> {
		int t;
		int num;
		String team;
		int t2;

		public int compareTo(Pair o) {
			if (t != o.t)
				return t - o.t;
			return t2 - o.t2;
		}
	}

	public static long comp527A(long a, long b) {
		if (a == 0 || b == 0) {
			return 0;
		}
		if (a > b) {
			return comp527A(b, a);
		}
		return (b / a) + comp527A(b % a, a);
	}
}
