#include #include const int maxn = 1e5 + 7; const int maxm = 1e3 + 7; const long long inf = 1e16 + 7; long long a[maxn], b[maxn], k[maxm], p[maxm], dp[11][2001]; int main() { long long n, m; while (std::cin >> n >> m) { for (int i = 0; i < n; ++i) { std::cin >> a[i] >> b[i]; } for (int i = 0; i < m; ++i) { std::cin >> k[i] >> p[i]; } for (int i = 0; i <= 10; ++i) { for (int j = 1; j <= 2000; ++j) { dp[i][j] = inf; } dp[i][0] = 0; for (int j = 0; j < m; ++j) { if (p[j] >= i) { for (int l = p[j] - i; l <= 2000; ++l) { dp[i][l] = std::min(dp[i][l], dp[i][l - p[j] + i] + k[j]); } } } for (int j = 1999; ~j; --j) { dp[i][j] = std::min(dp[i][j + 1], dp[i][j]); } } long long ans = 0; for (int i = 0; i < n; ++i) { ans += dp[b[i]][a[i]]; } if (ans >= inf) { ans = -1; } std::cout << ans << std::endl; } return 0; }