#include #define N 100010 using namespace std; int n,m,a[N],b[N],c[N],d[N],f[20][N],i,j,k; long long ans; int main(){ int T=100; while(scanf("%d%d",&n,&m)!=EOF){ ans=0; for(i=1;i<=n;i++)scanf("%d%d",&a[i],&b[i]); for(i=1;i<=m;i++)scanf("%d%d",&c[i],&d[i]); memset(f,63,sizeof(f)); for(i=0;i<=10;i++)f[i][0]=0; for(i=0;i<=10;i++) for(j=1;j<=m;j++)if(d[j]>i) for(k=1;k<=1000;k++) f[i][k]=min(f[i][k],f[i][max(0,k-d[j]+i)]+c[j]); for(i=1;i<=n;i++) { if(f[b[i]][a[i]]>1e9)ans=-1e18; ans+=f[b[i]][a[i]]; } printf("%I64d\n",ans>=0?ans:-1); } }