#include using namespace std; typedef long long ll; const int maxn = 100000+5; const int maxm = 1000+5; const int INF = 0x3f3f3f3f; const int mod = 1e9+7; int a[maxn],b[maxn]; int k[maxm],p[maxm]; int v[maxm]; int dp[11][maxm]; int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); int n,m; while(scanf("%d%d",&n,&m)!=EOF) { 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]); k[i] *= -1; } for(int i=0;i<=10;++i) { for(int j=1;j<=m;++j) { v[j] = max(0,p[j] - i); } for(int j=0;j= v[dpi]) { dp[i][dpj] = max(dp[i][dpj],dp[i][dpj-v[dpi]] + k[dpi]); } else { dp[i][dpj] = max(dp[i][dpj],dp[i][0] + k[dpi]); } } } } ll ans = 0; for(int i=1;i<=n;++i) { if(dp[b[i]][a[i]] == -INF) { ans = -1; break; } else { ans += abs(dp[b[i]][a[i]]); } } printf("%lld\n",ans); } return 0; }