//GIVE ME AC!!!!!!!!!!!!!!!!! //#pragma GCC target("avx") //#pragma GCC optimize("O3") //#pragma GCC optimize("unroll-loops") #include using namespace std; using ll=long long; using ld=long double; using vl=vector; using vi=vector; using vs=vector; using vc=vector; using vvl=vector; using P=pair; using vvc=vector; using vd=vector; using vp=vector

; using vb=vector; #define overload4(_1,_2,_3,_4,name,...) name #define overload3(_1,_2,_3,name,...) name #define rep1(a) for(__typeof(a) i=0;i=0;i--) #define rrep2(i,a) for(__typeof(a) i=(a)-1;i>=0;i--) #define rrep3(i,a,b) for(__typeof(a) i=(b)-1;i>=(a);i--) #define rrep(...) overload3(__VA_ARGS__,rrep3,rrep2,rrep1)(__VA_ARGS__) #define all1(i) begin(i),end(i) #define all2(i,a) begin(i),begin(i)+a #define all3(i,a,b) begin(i)+a,begin(i)+b #define all(...) overload3(__VA_ARGS__,all3,all2,all1)(__VA_ARGS__) #define rall(n) (n).rbegin(),(n).rend() #define pb push_back #define eb emplace_back #define MtSaka ios::sync_with_stdio(0);cin.tie(0);cout< ostream &operator<<(ostream&os,const pair&p){os< istream &operator>>(istream&is,pair&p){is>>p.first>>p.second;return is;} template ostream &operator<<(ostream&os,const vector&v){for(int i=0;i<(int)v.size();i++){os< istream &operator>>(istream&is,vector&v){for(T &in:v){is>>in;}return is;} void scan(){} template void scan(Head&head,Tail&... tail){cin>>head;scan(tail...);} template void print(const T &t){cout< void print(const Head &head, const Tail &... tail){cout< void fin(const T &... a){print(a...);exit(0);} template T sum_(vectora){return accumulate(all(a),T(0));} template inline bool chmax(T1&a,T2 b){return a inline bool chmin(T1&a,T2 b){return a>b&&(a=b,true);} int main(){ MtSaka; LL(n,m); vl p(n); scan(p); vector

a(n),b(m); scan(a,b); ll ans=0; map,ll>d; map,ll>cnt; rep(i,m)cnt[b[i]]=i+1; rep(i,n){ rep(j,m){ if(d[{i,j}])continue; ll midx=a[i].first+b[j].first,midy=a[i].second+b[j].second; ll now=0; rep(k,n){ ll nx=midx-a[k].first,ny=midy-a[k].second; if(cnt[{nx,ny}]){ now+=p[k]; d[{k,cnt[{nx,ny}]-1}]++; } } if(chmax(ans,now)){ print(ans,i,j); } } } fin(ans); }