#include using namespace std; typedef long long ll; const int N=1e3+5; int life[100005],d[100005],g[N],val[N]; int dp[20][1005]; int inf=0x3f3f3f3f; int main(){ int n,m; while(cin>>n>>m){ for(int i=1;i<=n;i++){ cin>>life[i]>>d[i]; } for(int i=1;i<=m;i++){ cin>>val[i]>>g[i]; } for(int i=0;i<=11;i++){ dp[i][0]=0; for(int j=1;j<=1005;j++){ dp[i][j]=inf; } for(int j=1;j<=m;j++){ if(g[j]<=i)continue; for(int k=1;k<=1005;k++){ int q=max(0,k-g[j]+i); dp[i][k]=min(dp[i][k],dp[i][q]+val[j]); } } } ll ans=0; for(int i=1;i<=n;i++){ if(dp[d[i]][life[i]]==inf){ ans=-1; break; } ans+=dp[d[i]][life[i]]; } cout<