#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 2e3 + 50;
long long dp[MAX_N], un[MAX_N], pos[MAX_N];
int a[MAX_N];
int main() {
  int a, n, m;
  cin >> a >> n >> m;
  for (int i = 0; i < n; i++) {
    long long l, r;
    cin >> l >> r;
    for (int j = l + 1; j <= r; j++) {
      pos[j] = 1;
    }
  }
  for (int i = 0; i < m; i++) {
    long long p, w;
    cin >> p >> w;
    if (!un[p])
      un[p] = w;
    else
      un[p] = min(un[p], w);
  }
  for (int i = 1; i <= a; i++) {
    if (pos[i] == 0) {
      dp[i] = dp[i - 1];
      continue;
    }
    dp[i] = LLONG_MAX;
    for (int j = 0; j < i; j++) {
      if (un[j] && dp[j] != LLONG_MAX) {
        dp[i] = min(dp[i], dp[j] + un[j] * (i - j));
      }
    }
  }
  if (dp[a] == LLONG_MAX)
    cout << -1 << endl;
  else
    cout << dp[a] << endl;
  return 0;
}
