#include <bits/stdc++.h>
using namespace std;
long long inline gcd(long long x, long long y) {
  return !y ? (long long)abs(x) : gcd(y, x % y);
}
long long inline lcm(long long a, long long b) {
  return ((long long)abs((a / gcd(a, b)) * b));
}
double inline cartesian_dist(double x1, double y1, double x2, double y2) {
  return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
}
long long bigmod(long long b, long long p, long long m) {
  if (!p)
    return 1 % m;
  else if (p & 1)
    return (((b % m) + m) % m * bigmod(b, p - 1, m)) % m;
  else {
    long long ret = bigmod(b, p / 2, m);
    return (ret * ret) % m;
  }
}
long long inverse(long long a, long long m) { return bigmod(a, m - 2, m); }
long long extended(long long a, long long m) {
  long long oldr = a, r = m, oldans = 1, ans = 0, quotient;
  while (r) {
    quotient = oldr / r;
    oldr = oldr - r * quotient;
    swap(oldr, r);
    oldans = oldans - ans * quotient;
    swap(oldans, ans);
  }
  return ((oldans % m) + m) % m;
}
const double PI = acos(-1.0);
const double eps = 10E-12;
long long MOD = 101LL;
int d, n, m;
vector<pair<int, int> > vec;
long long getResult(int now) {
  long long ans = 0;
  priority_queue<pair<int, int> > pq;
  for (int i = 0; i < vec.size(); i++) {
    if (now >= vec[i].first)
      pq.push(make_pair(-vec[i].second, vec[i].first));
    else {
      while (now < vec[i].first) {
        if (pq.empty()) return -1;
        while (!pq.empty() && pq.top().second + n <= now) pq.pop();
        int canGo = n - (now - pq.top().second);
        int nextPos = min(vec[i].first, now + canGo);
        ans += (long long)(nextPos - now) * (long long)(-pq.top().first);
        now = nextPos;
      }
      pq.push(make_pair(-vec[i].second, vec[i].first));
    }
  }
  return ans;
}
int main() {
  scanf("%d %d %d", &d, &n, &m);
  int x, p;
  while (m--) {
    scanf("%d %d", &x, &p);
    vec.push_back(make_pair(x, p));
  }
  vec.push_back(make_pair(d, 0));
  sort(vec.begin(), vec.end());
  printf("%lld", getResult(n));
  printf("\n");
  return 0;
}
