#include <bits/stdc++.h>
using namespace std;
long long a[1000005], h[1000005];
double l[1000005], r[1000005];
long long b[1000005], w[1000005];
struct xyq {
  long long a, id, left;
  double ykb;
} _[1000005];
struct rule {
  bool operator()(const xyq &s1, const xyq &s2) {
    return s1.a < s2.a || (s1.a == s2.a && s1.left < s2.left);
  }
};
double s[1000005];
int main() {
  long long n, m, i, N, tot = 0, kkksc03 = 0;
  double sum = 0;
  cin >> n >> m;
  for (i = 0; i < n; i++) {
    scanf("%lld %lld %lf %lf", a + i, h + i, l + i, r + i);
    _[i << 2].a = a[i] - h[i];
    _[i << 2].id = (i << 1);
    _[i << 2].left = 1;
    _[i << 2].ykb = 1.0 - l[i] / 100.0;
    _[i << 2 | 1].a = a[i] - 1;
    _[i << 2 | 1].id = (i << 1);
    _[i << 2 | 1].left = 3;
    _[i << 2 | 1].ykb = 1.0 - l[i] / 100.0;
    _[i << 2 | 2].a = a[i] + 1;
    _[i << 2 | 2].id = (i << 1 | 1);
    _[i << 2 | 2].left = 1;
    _[i << 2 | 2].ykb = 1.0 - r[i] / 100.0;
    _[i << 2 | 3].a = a[i] + h[i];
    _[i << 2 | 3].id = (i << 1 | 1);
    _[i << 2 | 3].left = 3;
    _[i << 2 | 3].ykb = 1.0 - r[i] / 100.0;
  }
  for (i = 0; i < m; i++) {
    scanf("%lld %lld", b + i, w + i);
    _[(n << 2) + i].a = b[i];
    _[(n << 2) + i].id = i;
    _[(n << 2) + i].left = 2;
    _[(n << 2) + i].ykb = w[i];
  }
  N = (n << 2) + m;
  sort(_, _ + N, rule());
  for (i = 0; i < N; i++) {
    s[i] = 1;
  }
  for (i = 0; i < N; i++) {
    if (_[i].ykb == 0) {
      _[i].ykb = 0.00001;
    }
    if (_[i].left == 1) {
      s[i] *= _[i].ykb;
    }
    if (_[i].left == 3) {
      s[i + 1] /= _[i].ykb;
    }
  }
  for (i = 1; i < N; i++) {
    s[i] *= s[i - 1];
    if (s[i] <
        0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001) {
      s[i] *=
          (1.0 /
           0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001);
      kkksc03++;
    }
    if (s[i] >
        (1.0 /
         0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001)) {
      s[i] *=
          0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001;
      kkksc03--;
    }
    if (_[i].left == 2) {
      sum +=
          _[i].ykb * s[i] *
          pow(0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001,
              kkksc03);
    }
  }
  printf("%.10f", sum + _[0].ykb * s[0] * (_[0].left == 2));
  return 0;
}
