#include #include #include #include #include #include #include #include using namespace std; #define mmst(a, b) memset(a, b, sizeof(a)) #define mmcp(a, b) memcpy(a, b, sizeof(b)) typedef long long LL; const int N=100100; const LL oo=1e18; int n,m; int a[N],b[N]; int p[N]; LL k[N],f[1010][11],ans; int main() { while(scanf("%d%d",&n,&m)!=EOF) { ans=0; for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); for(int i=1;i<=m;i++) scanf("%I64d%d",&k[i],&p[i]); for(int j=0;j<=10;j++) for(int i=1;i<=1000;i++) { f[i][j]=oo; for(int l=1;l<=m;l++) if(p[l]>j) { if(i-(p[l]-j)<=0) f[i][j]=min(f[i][j],k[l]); else f[i][j]=min(f[i][j],f[i-(p[l]-j)][j]+k[l]); } } for(int i=1;i<=n;i++) if(f[a[i]][b[i]]==oo) { ans=-1; break; } else ans=ans+f[a[i]][b[i]]; cout<