//#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; typedef pair P; //const int xp[]={-1,-1,-1,0,0,1,1,1}; //const int yp[]={-1,0,1,-1,1,-1,0,1}; const int xp[]={-1,0,0,1}; const int yp[]={0,-1,1,0}; const int MAXN=300005; const int MAXM=2e5+10; const int INF=1e9; const LL mod=1e9+7; const double eps=1e-6; int n,m,a[100050],b[100050],k[10050],p[10050]; LL dp[20][20035]; int main(){ ios::sync_with_stdio(false); 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 id=0;id<=10;id++){ memset(dp[id],63,sizeof(dp[id])); dp[id][0]=0; for(int j=1;j<=1000;j++) for(int i=1;i<=m;i++) dp[id][j]=min(dp[id][j],dp[id][max(0,j-(p[i]-id))]+k[i]); } LL sum=0; for(int i=1;i<=n;i++){ if (dp[b[i]][a[i]]>=4557430888798830399){ sum=-1; break; } sum+=dp[b[i]][a[i]]; } cout<