#include #include #include #include #include #include #define ll long long #define maxn 100020 using namespace std; ll f[1020][12]; ll ans; int n,m; int a[maxn],b[maxn],k[maxn],p[maxn]; int main() { while(scanf("%d%d",&n,&m)!=EOF){ 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 j=0;j<=10;++j){ for(int i=0;i<=1001;++i){ f[i][j]=100001; f[i][j]*=1001; } } int mxn = f[0][0]; for(int j=0;j<=10;++j){ f[0][j] = 0; for(int i=0;i<=1000;++i){ if(f[i][j] == mxn)continue; for(int z=1;z<=m;++z){ if(p[z] <= j)continue; int x = p[z] - j; int y = min(i+x,1000); f[y][j] = min(f[y][j],f[i][j]+k[z]); } } for(int i=1000;i>=0;--i){ f[i][j]=min(f[i][j],f[i+1][j]); } } ans = 0; for(int i=1;i<=n;++i){ if(f[a[i]][b[i]] == mxn){ ans = -1; break; } ans += f[a[i]][b[i]]; } cout<