#include <cstdio>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;
typedef long long ll;
ll n, k, a[100005], b[100005], sum, tsum, res;
int main()
{
cin >> n >> k;
sum = 0;
for (ll i = 0; i < n; i++) {
scanf("%I64d", &a[i]);
sum += a[i];
}
for (ll i = 0; i < k; i++) {
scanf("%I64d", &b[i]);
}
map<ll, ll> mp; //标记之前算过的首都,避免重复计算
res = 0; tsum = 0; //tsum用于去重
//先算所有与首都相连的路
for (ll i = 0; i < k; i++) {
res = res + (sum - a[b[i] - 1] - tsum) * a[b[i] - 1];
mp[b[i] - 1] = 1;
tsum += a[b[i] - 1];
}
//算非首都之间的路
a[n] = a[0];
for (ll i = 1; i <= n; i++) {
if (!mp[i % n]) {
if (!mp[i - 1]) {
res += a[i - 1] * a[i];
}
}
}
cout << res << endl;
return 0;
}