#include <stdio.h>
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf (long long)1000000000000000000
int n,m;
vector<long long> p;

long long get(vector<int> a,vector<int> b,vector<int> c,vector<int> d){
	map<pair<int,int>,long long> mp;
	rep(i,n){
		rep(j,m){
			mp[make_pair(c[j]-a[i],d[j]-b[i])] += p[i];
		}
	}
	long long ret = 0LL;
	for(auto a:mp)ret = max(ret,a.second);
	return ret;
}

int main(){
	
	cin>>n>>m;
	
	p.resize(n);
	rep(i,n)cin>>p[i];
	
	vector<int> a(n),b(n),c(m),d(m);
	rep(i,n)cin>>a[i]>>b[i];
	rep(i,m)cin>>c[i]>>d[i];
	
	long long ans = 0LL;
	
	rep(i,2){
		rep(j,2){
			ans = max(ans,get(a,b,c,d));
			rep(k,m)c[k] *= -1;
		}
		rep(k,m)d[k] *= -1;
	}
	cout<<ans<<endl;
	
	return 0;
	
}