#include<algorithm> #include<iostream> #include<cstdio> #define inf 0x7fffffff using namespace std; inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } struct data{ int v,num; }a[2501]; inline bool cmp(data a,data b){ return a.v<b.v; } int C,L,ans,l[2501],r[2501]; bool used[2501]; inline int find(int x){ int tmp=0,mn=inf; for(int i=1;i<=C;++i){ if(used[i]||l[i]>x||r[i]<x)continue; if(r[i]<mn){mn=r[i];tmp=i;} } return tmp; } int main(){ C=read();L=read(); for(int i=1;i<=C;++i){ l[i]=read(); r[i]=read(); } for(int i=1;i<=L;++i){ a[i].v=read(); a[i].num=read(); } sort(a+1,a+L+1,cmp); for(int i=1;i<=L;++i){ while(a[i].num--){ int t=find(a[i].v); if(t){used[t]=1;++ans;} } } printf("%d",ans); return 0; }