//#include #include #include #define maxn 1020 using namespace std; int n,m,x; long long oo=20000000000000000; int a[100100],b[100100],p[maxn],K[maxn]; long long g[maxn<<1],f[11][maxn<<1],ans; int main(){ while(scanf("%d%d",&n,&m)==2){ for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); for(int i=1;i<=m;i++) scanf("%d%d",&K[i],&p[i]); x=0; for(int i=1;i<=n;i++)x=max(x,a[i]); //for(int i=1;i<=m;i++)if(p[i]>x+10)p[i]=x+10; //x+=10; for(int i=0;i<=10;i++){ for(int j=0;j<=x;j++) f[i][j]=oo; f[i][0]=0; for(int j=1;j<=x;j++) for(int k=1;k<=m;k++) if(p[k]>i){ int pre=j+i-p[k]; if(pre<0)pre=0; f[i][j]=min(f[i][j],f[i][pre]+K[k]); } } ans=0; for(int i=1;i<=n;i++) ans+=f[b[i]][a[i]]; for(int i=1;i<=n;i++) if(f[b[i]][a[i]]==oo)ans=-1; printf("%I64d\n",ans); } }