#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 100001;
int c[MAX_N];
int n;
int prev(int i) {
  if (i > 1) {
    return i - 1;
  }
  return n;
}
int next(int i) {
  if (i < n) {
    return i + 1;
  }
  return 1;
}
int main() {
  int k;
  cin >> n >> k;
  long long ts = 0;
  for (int i = 1; i <= n; ++i) {
    cin >> c[i];
    ts += c[i];
  }
  set<int> sc;
  long long cs = 0;
  for (int i = 0; i < k; ++i) {
    int t;
    cin >> t;
    sc.insert(t);
    cs += c[t];
  }
  long long ans = 0;
  for (int i = 1; i <= n; ++i) {
    if (sc.find(i) != sc.end()) {
      ans += (ts - c[i]) * c[i];
    } else {
      ans += cs * c[i];
      if (sc.find(prev(i)) == sc.end()) {
        ans += c[prev(i)] * c[i];
      }
      if (sc.find(next(i)) == sc.end()) {
        ans += c[next(i)] * c[i];
      }
    }
  }
  cout << ans / 2;
  return 0;
}
