#include <bits/stdc++.h>
using namespace std;
const long long size = 101000;
long long n, k, ans = 0;
vector<long long> a(size), cap(size), s(size), non_cap, s_cap(size);
vector<bool> is_cap(size);
int main() {
  long long i, j, q;
  cin >> n >> k;
  for (i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (i = 1; i <= n; i++) is_cap[i] = false;
  for (i = 1; i <= k; i++) {
    cin >> cap[i];
    is_cap[cap[i]] = true;
    s_cap[i] = a[cap[i]];
  }
  s_cap[0] = 0;
  for (i = 1; i <= k; i++) s_cap[i] = s_cap[i - 1] + s_cap[i];
  if (k > 1)
    for (i = 1; i <= k; i++) {
      ans = ans + a[cap[i]] * (s_cap[k] - a[cap[i]]);
    }
  if (k > 1) ans /= 2;
  s[0] = 0;
  for (i = 1; i <= n; i++) s[i] = s[i - 1] + a[i];
  non_cap.push_back(0);
  long long sum = 0;
  for (i = 1; i <= n; i++) {
    if (!is_cap[i]) {
      non_cap.push_back(i);
      sum += a[i];
    }
  }
  ans = ans + s_cap[k] * sum;
  for (i = 2; i < non_cap.size(); i++)
    if (non_cap[i] - 1 == non_cap[i - 1])
      ans = ans + a[non_cap[i - 1]] * a[non_cap[i]];
  if ((!is_cap[1]) && (!is_cap[n])) ans = ans + a[1] * a[n];
  cout << ans;
  return 0;
}
