#include <bits/stdc++.h>
using namespace std;
int main() {
  long long maxval = 1000000000000000000;
  int a, n, m;
  cin >> a >> n >> m;
  vector<int> rain(a, 0);
  for (int i = 0; i < n; i++) {
    int l, r;
    cin >> l >> r;
    for (int j = l; j < r; j++) {
      rain[j] = 1;
    }
  }
  vector<int> u(a + 1, -1);
  vector<int> w(m + 1);
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    if (u[x] == -1) {
      u[x] = i + 1;
      w[i + 1] = y;
    }
    if (w[u[x]] > y) {
      w[u[x]] = y;
    }
  }
  vector<vector<long long> > dp(a + 1, vector<long long>(m + 1, maxval));
  dp[0][0] = 0;
  for (int i = 0; i < a; i++) {
    for (int j = 0; j <= m; j++) {
      if (rain[i] == 1) {
        dp[i + 1][0] = maxval;
      }
      if (rain[i] != 1) {
        dp[i + 1][0] = min(dp[i + 1][0], dp[i][j]);
      }
      dp[i + 1][j] = min(dp[i + 1][j], dp[i][j] + w[j]);
      if (u[i] != -1) {
        dp[i + 1][u[i]] = min(dp[i + 1][u[i]], dp[i][j] + w[u[i]]);
      }
    }
  }
  long long res = maxval;
  for (int i = 0; i <= m; i++) {
    if (dp[a][i] < res) res = dp[a][i];
  }
  if (res == maxval) res = -1;
  cout << res << endl;
  return 0;
}
