贪心
#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<algorithm>
using namespace std;
stack<int>st[1444];
struct node
{
int x,y;
}a[111111],b[111111];
int n,m;
bool cmp(node e,node f)
{
if(e.y==f.y)return e.x<f.x;
else return e.y<f.y;
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=0;i<n;i++)scanf("%d%d",&a[i].x,&a[i].y);
for(int i=0;i<m;i++)scanf("%d%d",&b[i].x,&b[i].y);
sort(a,a+n,cmp);
sort(b,b+m,cmp);
for(int i=0;i<=1440;i++)
{
while(st[i].size())st[i].pop();
}
int u=0,v=0;
long long ans=0;
int num=0;
for(int i=0;i<=100;i++)
{
while(v<m)
{
if(b[v].y>i)break;
st[b[v].x].push(b[v].y);
v++;
}
while(u<n)
{
if(a[u].y>i)break;
for(int j=a[u].x;j>=0;j--)
{
if(st[j].size())
{
int temp=st[j].top();
st[j].pop();
ans+=temp*2+j*500;
num++;
break;
}
}
u++;
}
}
printf("%d %I64d\n",num,ans);
}
return 0;
}