#include #define ll long long using namespace std; const int N = 1e5 + 5; const int M = 1e3 + 5; int a[N], b[N], k[M], p[M]; ll f[M][15]; int main() { int n, m; while(~scanf("%d%d", &n, &m)) { for(int i = 0; i < n; i++) { scanf("%d%d", &a[i], &b[i]); } for(int i = 0; i < m; i++) { scanf("%d%d", &k[i], &p[i]); } for(int i = 0; i <= 1000; i++) { for(int j = 0; j <= 10; j++) { f[i][j] = 1e18; } } for(int i = 0; i <= 10; i++) { f[0][i] = 0; } for(int i = 0; i <= 10; i++) { for(int j = 0; j < m; j++) { int det = p[j] - i; if(det <= 0) continue; for(int l = 0; l <= 1000; l++) { f[l][i] = min(f[l][i], f[max(0, l - det)][i] + k[j]); } } } ll ans = 0; for(int i = 0; i < n; i++) { if(f[a[i]][b[i]] == 1e18) ans = -1; if(~ans) ans += f[a[i]][b[i]]; } printf("%lld\n", ans); } return 0; }