#include using namespace std; const int inf=(1<<30)-1; const int maxn=100010; #define REP(i,n) for(int i=(0);i<(n);i++) #define FOR(i,j,n) for(int i=(j);i<=(n);i++) typedef long long ll; const ll oo=(1ll<<50)-1; int n,m; int a[maxn],b[maxn]; int w[maxn],p[maxn]; ll dp[1010][15]; int main() { while(~scanf("%d%d",&n,&m)) { for(int i=1;i<=n;i++) scanf("%d%d",&a[i],&b[i]); for(int i=1;i<=m;i++) scanf("%d%d",&w[i],&p[i]); for(int i=0;i<=1002;i++) for(int j=0;j<=10;j++) dp[i][j]=oo; for(int i=0;i<=10;i++) dp[0][i]=0; for(int k=1;k<=m;k++) for(int i=1;i<=1002;i++) for(int j=0;j<=10;j++) if(p[k]>j) { dp[i][j]=min(dp[i][j],dp[max(0,i-(p[k]-j))][j]+w[k]); } ll ans=0; for(int i=1;i<=n;i++) if(dp[a[i]][b[i]]!=oo) ans+=dp[a[i]][b[i]]; else { ans=-1;break; } printf("%I64d\n",ans); } return 0; }