#include using namespace std; #define max 1e18 int k[1005],p[1005],a[100010],b[100010]; long long dp[15][1005]; int main() { long long n, m; 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 i = 0; i <= 10; i++) { for (int j = 1; j <= 1000; j++) dp[i][j] = max; dp[i][0] = 0; for (int j = 1; j <= m; j++) { if (p[j] <= i) continue; for (int q = 1; q <= 1000; q++) { int x; if (q - p[j] + i > 0) x = q - p[j] + i; else x = 0; dp[i][q] = min(dp[i][x] + k[j], dp[i][q]); } } } long long ans = 0; for (int i = 1; i <= n; i++) ans += dp[b[i]][a[i]]; if (ans >= max) cout << -1 << endl; else cout << ans << endl; } return 0; }