#include using namespace std; #define INF 1e18 int k[1005],p[1005],a[100010],b[100010]; long long dp[15][1005]; int main() { long long n,m; while(cin>>n>>m) { for(int i=1;i<=n;i++) cin>>a[i]>>b[i]; for(int i=1;i<=m;i++) cin>>k[i]>>p[i]; for(int i=0;i<=10;i++) { for(int j=1;j<=1000;j++) dp[i][j]=INF; dp[i][0]=0; for(int j=1;j<=m;j++) { if(p[j]<=i) continue; for(int q=1;q<=1000;q++) { int kk=q-p[j]+i>0?q-p[j]+i:0; dp[i][q]=min((long long)dp[i][kk]+k[j],dp[i][q]); } } } long long ans=0; for(int i=1;i<=n;i++) ans+=dp[b[i]][a[i]]; if(ans>=INF) cout<<-1<