#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int cmin[2501],cmax[2501];
int spf[2501],num[2501];
for(int i=1;i<=n;i++)
{
cin>>cmin[i]>>cmax[i];
}
for(int i=1;i<=m;i++)
{
cin>>spf[i]>>num[i];
}
for(int i=0;i<=n;i++)
{
int hand=99999;
int k;
for(int j=i+1;j<=n;j++)
{
if(cmin[j]<hand)
{
hand=cmin[j];
k=j;
}
}
swap(cmin[i+1],cmin[k]);
swap(cmax[i+1],cmax[k]);
}
for(int i=0;i<=n;i++)
{
int hand=9999;
int k;
for(int j=i+1;j<=n;j++)
{
if(spf[j]<hand)
{
hand=spf[j];
k=j;
}
}
swap(spf[i+1],spf[k]);
swap(num[i+1],num[k]);
}
priority_queue<int,vector<int>,greater<int> > q;
int j=1;
int ans=0;
for(int i=1;i<=m;i++)
{
while(j<=n && cmin[j]<=spf[i])
{
q.push(cmax[j]);
j++;
}
while(q.empty()==false&&num[i]>0)
{
int t=q.top();
q.pop();
if(t>=spf[i])
{
ans++;
num[i]--;
}
}
}
cout<<ans;
return 0;
}