#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100004;
const int MAXM = 10004;
pair<int, double> cha[MAXN * 2];
pair<int, int> mus[MAXM];
int x[MAXN], h[MAXN], l[MAXN], r[MAXN];
double p[MAXM];
int main() {
  int n, m;
  int i, j;
  double t;
  scanf("%d%d", &n, &m);
  for (i = 0; i < n; i++) {
    scanf("%d%d%d%d", &x[i], &h[i], &l[i], &r[i]);
  }
  for (i = 0; i < m; i++) scanf("%d%lf", &mus[i].first, &p[i]);
  for (i = 0; i < m; i++) mus[i].second = i;
  sort(mus, mus + m);
  for (i = 0; i < n; i++) {
    if (r[i] != 100) {
      cha[i] = make_pair(x[i], (100 - r[i]) / 100.);
      cha[i + n] = make_pair(x[i] + h[i], 100. / (100 - r[i]));
    } else {
      cha[i] = make_pair(x[i], 1e-10);
      cha[i + n] = make_pair(x[i] + h[i], 1e10);
    }
  }
  sort(cha, cha + n * 2);
  i = 0;
  j = 0;
  t = 0.;
  while (i < 2 * n && j < m) {
    if (cha[i].first < mus[j].first) {
      t += log(cha[i++].second);
    } else {
      p[mus[j++].second] *= exp(t);
    }
  }
  for (i = 0; i < n; i++) {
    if (l[i] != 100) {
      cha[i] = make_pair(x[i] - h[i], (100 - l[i]) / 100.);
      cha[i + n] = make_pair(x[i], 100. / (100 - l[i]));
    } else {
      cha[i] = make_pair(x[i] - h[i], 1e-10);
      cha[i + n] = make_pair(x[i], 1e10);
    }
  }
  sort(cha, cha + n * 2);
  i = 0;
  j = 0;
  t = 0.;
  while (i < 2 * n && j < m) {
    if (cha[i].first <= mus[j].first) {
      t += log(cha[i++].second);
    } else {
      p[mus[j++].second] *= exp(t);
    }
  }
  t = 0.;
  for (i = 0; i < m; i++) t += p[i];
  cout << t << endl;
  return 0;
}
