#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define int ll
const int MAXN = 1e6 + 5;
const int inf = (int)2e9 + 5;
const int infll = (int)4e18 + 5;
const int mod = (int)1e9 + 7;
void solve(){
int n, k;
cin >> n >> k;
vector<int> a(n + 1), h(n + 1), x(k + 1);
for(int i = 1; i <= n; i++) {
cin >> a[i] >> h[i];
}
for(int i = 1; i <= k; i++) {
cin >> x[i];
}
sort(x.begin(), x.end());
set<int> used;
int res = 0;
for(int i = 1; i <= n; i++) {
int cost1 = abs(a[i] - x[1]);
int cost2 = abs(a[i] - x[2]);
int u;
int cost;
if(cost1 <= cost2) {
u = x[1];
cost = cost1;
} else {
u = x[2];
cost = cost2;
}
if(cost >= h[i]) {
u = -1;
cost = h[i];
}
if(u != -1) used.insert(u);
res += cost;
}
res += (int)used.size();
cout << res << endl;
}
signed main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t = 1;
//cin >> t;
while(t--)
solve();
return 0;
}