#include #include #define INF 0x3f3f3f3f using namespace std; int a[100001],b[100001]; int p[1001],k[1001]; int dp[11][1001]; int main(){ int n,m; long long summin; while(scanf("%d%d",&n,&m)!=EOF){ memset(dp,INF,sizeof(dp)); 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]); } for(int i=0;i<=10;i++){ for(int j=1;j<=1000;j++){ for(int u=1;u<=m;u++){ if(p[u]<=i)continue; int y=p[u]-i; if(y>=j)dp[i][j]=min(dp[i][j],k[u]); else dp[i][j]=min(dp[i][j],dp[i][j-y]+k[u]); } } } summin=0; for(int i=1;i<=n;i++){ if(dp[b[i]][a[i]]==INF){summin=-1;break;} summin+=dp[b[i]][a[i]]; } cout<