#include using namespace std; const int MAXN=2010; const long long INF=1LL<<60; long long F[MAXN]; int N,M,V[MAXN],C[MAXN]; vector A[11]; int get() { int x;bool f=0;char c; while (!isdigit(c=getchar())) if (c=='-') f=1; x=c-48; while (isdigit(c=getchar())) x=(x<<1)+(x<<3)+c-48; if (f) return -x;else return x; } long long cal(int b) { for (int i=1;i<=2000;++i) F[i]=INF; F[0]=0; for (int i=1;i<=M;++i) if (V[i]>b) { int v=V[i]-b; for (int j=v;j<=2000;++j) F[j]=min(F[j],F[j-v]+C[i]); } for (int i=2000-1;i>=0;--i) F[i]=min(F[i],F[i+1]); long long Ans=0; for (int i=0;i().swap(A[i]); for (int i=1;i<=N;++i) { int a,b; a=get();b=get(); A[b].push_back(a); } for (int i=1;i<=M;++i) C[i]=get(),V[i]=get(); long long Ans=0; for (int i=0;i<=10;++i) { long long v=cal(i); if (v==-1) {printf("-1\n");return ;} Ans+=v; } cout<