#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using ll = long long;
template <typename K, typename V, typename Comp = std::less<K>>
using order_statistic_map = __gnu_pbds::tree<
K, V, Comp,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update
>;
template <typename K, typename Comp = std::less<K>>
using order_statistic_set = order_statistic_map<K, __gnu_pbds::null_type, Comp>;
const int MAXN = 2.1e5;
const int MAXQ = 2.1e5;
int n, q;
int ca[MAXN];
int cb[MAXN];
int qt[MAXQ];
const int S = 1 << 19;
int seg[2 * S];
void update(int i, int v) {
if (seg[S+i] >= v) return;
seg[S+i] = v;
for (int a = (S+i)/2; a; a /= 2) {
seg[a] = max(seg[2*a], seg[2*a+1]);
}
}
int query(int l) {
int res = -1;
for (int a = S+l, b = S+S; a < b; a /= 2, b /= 2) {
if (a & 1) {
res = max(res, seg[a++]);
}
if (b & 1) {
res = max(res, seg[--b]);
}
}
return res;
}
int main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> q;
vector<int> vals;
for (int i = 0; i < n; i++) {
cin >> ca[i] >> cb[i];
vals.push_back(min(ca[i], cb[i]));
}
for (int i = 0; i < q; i++) {
cin >> qt[i];
vals.push_back(qt[i]);
}
sort(vals.begin(), vals.end());
vals.erase(unique(vals.begin(), vals.end()), vals.end());
auto lookup = [&](int v) {
auto it = lower_bound(vals.begin(), vals.end(), v);
assert(it != vals.end() && *it == v);
return int(it - vals.begin());
};
vector<int> cards(n);
iota(cards.begin(), cards.end(), 0);
sort(cards.begin(), cards.end(), [&](int i, int j) {
return max(ca[i], cb[i]) < max(ca[j], cb[j]);
});
vector<int> operations(q);
iota(operations.begin(), operations.end(), 0);
sort(operations.begin(), operations.end(), [&](int i, int j) {
return qt[i] < qt[j];
});
order_statistic_set<pair<int, int>> os;
for (int i = 0; i < q; i++) {
os.insert({i, qt[i]});
}
auto operations_it = operations.begin();
ll ans = 0;
for (int a = 1; a < S*2; a++) {
seg[a] = -1;
}
for (auto card : cards) {
int lo = min(ca[card], cb[card]);
int hi = max(ca[card], cb[card]);
while (operations_it != operations.end() && qt[*operations_it] < hi) {
os.erase({*operations_it, qt[*operations_it]});
update(lookup(qt[*operations_it]), *operations_it);
operations_it++;
}
int last_time = query(lookup(lo));
int parity = (os.size() - os.order_of_key({last_time, -1})) % 2;
if (last_time == -1) {
ans += parity ? cb[card] : ca[card];
} else {
ans += parity ? lo : hi;
}
}
cout << ans << '\n';
return 0;
}
// Let's assume that a_i < b_i
// t_j < a_i: nothing happens
// a_i <= t_j < b_i: becomes b_i
// b_i <= t_j: flips
// For each card, let's fix the last operation of the second type, then the result only depends on the parity of (# of flips) after that operation
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxiaXRzL2V4dGMrKy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdXNpbmcgbGwgPSBsb25nIGxvbmc7Cgp0ZW1wbGF0ZSA8dHlwZW5hbWUgSywgdHlwZW5hbWUgViwgdHlwZW5hbWUgQ29tcCA9IHN0ZDo6bGVzczxLPj4KdXNpbmcgb3JkZXJfc3RhdGlzdGljX21hcCA9IF9fZ251X3BiZHM6OnRyZWU8CglLLCBWLCBDb21wLAoJX19nbnVfcGJkczo6cmJfdHJlZV90YWcsCglfX2dudV9wYmRzOjp0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGUKPjsKCnRlbXBsYXRlIDx0eXBlbmFtZSBLLCB0eXBlbmFtZSBDb21wID0gc3RkOjpsZXNzPEs+Pgp1c2luZyBvcmRlcl9zdGF0aXN0aWNfc2V0ID0gb3JkZXJfc3RhdGlzdGljX21hcDxLLCBfX2dudV9wYmRzOjpudWxsX3R5cGUsIENvbXA+OwoKY29uc3QgaW50IE1BWE4gPSAyLjFlNTsKY29uc3QgaW50IE1BWFEgPSAyLjFlNTsKaW50IG4sIHE7CmludCBjYVtNQVhOXTsKaW50IGNiW01BWE5dOwppbnQgcXRbTUFYUV07Cgpjb25zdCBpbnQgUyA9IDEgPDwgMTk7CmludCBzZWdbMiAqIFNdOwoKdm9pZCB1cGRhdGUoaW50IGksIGludCB2KSB7CglpZiAoc2VnW1MraV0gPj0gdikgcmV0dXJuOwoJc2VnW1MraV0gPSB2OwoJZm9yIChpbnQgYSA9IChTK2kpLzI7IGE7IGEgLz0gMikgewoJCXNlZ1thXSA9IG1heChzZWdbMiphXSwgc2VnWzIqYSsxXSk7Cgl9Cn0KCmludCBxdWVyeShpbnQgbCkgewoJaW50IHJlcyA9IC0xOwoJZm9yIChpbnQgYSA9IFMrbCwgYiA9IFMrUzsgYSA8IGI7IGEgLz0gMiwgYiAvPSAyKSB7CgkJaWYgKGEgJiAxKSB7CgkJCXJlcyA9IG1heChyZXMsIHNlZ1thKytdKTsKCQl9CgkJaWYgKGIgJiAxKSB7CgkJCXJlcyA9IG1heChyZXMsIHNlZ1stLWJdKTsKCQl9Cgl9CglyZXR1cm4gcmVzOwp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApOwoKCWNpbiA+PiBuID4+IHE7Cgl2ZWN0b3I8aW50PiB2YWxzOwoJZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKCQljaW4gPj4gY2FbaV0gPj4gY2JbaV07CgkJdmFscy5wdXNoX2JhY2sobWluKGNhW2ldLCBjYltpXSkpOwoJfQoJZm9yIChpbnQgaSA9IDA7IGkgPCBxOyBpKyspIHsKCQljaW4gPj4gcXRbaV07CgkJdmFscy5wdXNoX2JhY2socXRbaV0pOwoJfQoKCXNvcnQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpKTsKCXZhbHMuZXJhc2UodW5pcXVlKHZhbHMuYmVnaW4oKSwgdmFscy5lbmQoKSksIHZhbHMuZW5kKCkpOwoJYXV0byBsb29rdXAgPSBbJl0oaW50IHYpIHsKCQlhdXRvIGl0ID0gbG93ZXJfYm91bmQodmFscy5iZWdpbigpLCB2YWxzLmVuZCgpLCB2KTsKCQlhc3NlcnQoaXQgIT0gdmFscy5lbmQoKSAmJiAqaXQgPT0gdik7CgkJcmV0dXJuIGludChpdCAtIHZhbHMuYmVnaW4oKSk7Cgl9OwoKCXZlY3RvcjxpbnQ+IGNhcmRzKG4pOwoJaW90YShjYXJkcy5iZWdpbigpLCBjYXJkcy5lbmQoKSwgMCk7Cglzb3J0KGNhcmRzLmJlZ2luKCksIGNhcmRzLmVuZCgpLCBbJl0oaW50IGksIGludCBqKSB7CgkJcmV0dXJuIG1heChjYVtpXSwgY2JbaV0pIDwgbWF4KGNhW2pdLCBjYltqXSk7Cgl9KTsKCXZlY3RvcjxpbnQ+IG9wZXJhdGlvbnMocSk7Cglpb3RhKG9wZXJhdGlvbnMuYmVnaW4oKSwgb3BlcmF0aW9ucy5lbmQoKSwgMCk7Cglzb3J0KG9wZXJhdGlvbnMuYmVnaW4oKSwgb3BlcmF0aW9ucy5lbmQoKSwgWyZdKGludCBpLCBpbnQgaikgewoJCXJldHVybiBxdFtpXSA8IHF0W2pdOwoJfSk7CgoJb3JkZXJfc3RhdGlzdGljX3NldDxwYWlyPGludCwgaW50Pj4gb3M7Cglmb3IgKGludCBpID0gMDsgaSA8IHE7IGkrKykgewoJCW9zLmluc2VydCh7aSwgcXRbaV19KTsKCX0KCWF1dG8gb3BlcmF0aW9uc19pdCA9IG9wZXJhdGlvbnMuYmVnaW4oKTsKCWxsIGFucyA9IDA7Cglmb3IgKGludCBhID0gMTsgYSA8IFMqMjsgYSsrKSB7CgkJc2VnW2FdID0gLTE7Cgl9Cglmb3IgKGF1dG8gY2FyZCA6IGNhcmRzKSB7CgkJaW50IGxvID0gbWluKGNhW2NhcmRdLCBjYltjYXJkXSk7CgkJaW50IGhpID0gbWF4KGNhW2NhcmRdLCBjYltjYXJkXSk7CgkJd2hpbGUgKG9wZXJhdGlvbnNfaXQgIT0gb3BlcmF0aW9ucy5lbmQoKSAmJiBxdFsqb3BlcmF0aW9uc19pdF0gPCBoaSkgewoJCQlvcy5lcmFzZSh7Km9wZXJhdGlvbnNfaXQsIHF0WypvcGVyYXRpb25zX2l0XX0pOwoJCQl1cGRhdGUobG9va3VwKHF0WypvcGVyYXRpb25zX2l0XSksICpvcGVyYXRpb25zX2l0KTsKCQkJb3BlcmF0aW9uc19pdCsrOwoJCX0KCgkJaW50IGxhc3RfdGltZSA9IHF1ZXJ5KGxvb2t1cChsbykpOwoJCWludCBwYXJpdHkgPSAob3Muc2l6ZSgpIC0gb3Mub3JkZXJfb2Zfa2V5KHtsYXN0X3RpbWUsIC0xfSkpICUgMjsKCQlpZiAobGFzdF90aW1lID09IC0xKSB7CgkJCWFucyArPSBwYXJpdHkgPyBjYltjYXJkXSA6IGNhW2NhcmRdOwoJCX0gZWxzZSB7CgkJCWFucyArPSBwYXJpdHkgPyBsbyA6IGhpOwoJCX0KCX0KCWNvdXQgPDwgYW5zIDw8ICdcbic7CgoJcmV0dXJuIDA7Cn0KCi8vIExldCdzIGFzc3VtZSB0aGF0IGFfaSA8IGJfaQovLyB0X2ogPCBhX2k6IG5vdGhpbmcgaGFwcGVucwovLyBhX2kgPD0gdF9qIDwgYl9pOiBiZWNvbWVzIGJfaQovLyBiX2kgPD0gdF9qOiBmbGlwcwovLyBGb3IgZWFjaCBjYXJkLCBsZXQncyBmaXggdGhlIGxhc3Qgb3BlcmF0aW9uIG9mIHRoZSBzZWNvbmQgdHlwZSwgdGhlbiB0aGUgcmVzdWx0IG9ubHkgZGVwZW5kcyBvbiB0aGUgcGFyaXR5IG9mICgjIG9mIGZsaXBzKSBhZnRlciB0aGF0IG9wZXJhdGlvbgo=