#include <bits/stdc++.h>
using namespace std;
using ppi = pair<int, int>;
int sta[2100];
int w[2100];
int main(int argc, const char* argv[]) {
  ios::sync_with_stdio(false);
  int a, m, n;
  cin >> a >> n >> m;
  for (int i = 0; i < n; ++i) {
    int l, r;
    cin >> l >> r;
    sta[l] = 1, sta[r] = 2;
    for (int j = l + 1; j <= r; ++j) {
      sta[j] = 2;
    }
  }
  for (int i = 0; i < m; ++i) {
    int x, w;
    cin >> x >> w;
    if (::w[x]) {
      if (::w[x] > w) {
        ::w[x] = w;
      }
    } else
      ::w[x] = w;
  }
  vector<int> q;
  for (int i = 0; i <= a; ++i) {
    if (sta[i] || w[i]) {
      q.push_back(i);
    }
  }
  vector<int> dp(q.size() + 1, -1);
  bool fi = 0;
  for (int i = 0; i < q.size(); ++i) {
    if (w[q[i]] && sta[q[i]] != 2) {
      if (fi)
        dp[i] = dp[i - 1];
      else {
        dp[i] = 0, fi = 1;
      }
    }
    if (sta[q[i]]) {
      if (!fi) break;
      if (i && sta[q[i]] == 1 && (w[q[i - 1]] || w[q[i]])) dp[i] = dp[i - 1];
      for (int j = 0; j < i; ++j) {
        if (w[q[j]]) {
          if (dp[i] != -1)
            dp[i] = min(dp[i], dp[j] + (q[i] - q[j]) * w[q[j]]);
          else
            dp[i] = dp[j] + (q[i] - q[j]) * w[q[j]];
        }
      }
    }
    if (dp[i] == -1) {
      break;
    }
  }
  int si = q.size();
  cout << dp[si - 1] << endl;
  return 0;
}
