#include <bits/stdc++.h>
using namespace std;
int n, m, sz;
vector<int> A;
struct segtree {
  double p[100005 * 13];
  void build(int l, int r, int rt) {
    p[rt] = 1;
    if (l == r) return;
    int mid = (l + r) >> 1;
    build(l, mid, rt << 1);
    build(mid + 1, r, rt << 1 | 1);
  }
  void down(int rt) {
    if (fabs(p[rt] - 1) > 1e-7) {
      p[rt << 1] *= p[rt];
      p[rt << 1 | 1] *= p[rt];
    }
    p[rt] = 1;
  }
  double query(int pos, int l, int r, int rt) {
    if (l == pos && r == pos) return p[rt];
    down(rt);
    int mid = (l + r) >> 1;
    if (pos <= mid) return query(pos, l, mid, rt << 1);
    if (mid < pos) return query(pos, mid + 1, r, rt << 1 | 1);
  }
  void update(int L, int R, double c, int l, int r, int rt) {
    if (L <= l && r <= R) {
      p[rt] *= c;
      return;
    }
    down(rt);
    int mid = (l + r) >> 1;
    if (L <= mid) update(L, R, c, l, mid, rt << 1);
    if (mid < R) update(L, R, c, mid + 1, r, rt << 1 | 1);
  }
} st;
struct OP {
  int l, r, h, pos;
} a[100005];
int b[10005][2];
void doit() {
  A.clear();
  for (int i = 1; i <= n; i++) {
    scanf("%d%d%d%d", &a[i].pos, &a[i].h, &a[i].l, &a[i].r);
    A.push_back(a[i].pos);
    A.push_back(a[i].pos + a[i].h);
    A.push_back(a[i].pos - a[i].h);
  }
  for (int i = 1; i <= m; i++) {
    scanf("%d%d", &b[i][0], &b[i][1]);
    A.push_back(b[i][0]);
  }
  sort(A.begin(), A.end());
  sz = unique(A.begin(), A.end()) - A.begin();
  st.build(1, sz, 1);
  for (int i = 1; i <= n; i++) {
    int id1 = lower_bound(A.begin(), A.begin() + sz, a[i].pos) - A.begin() + 1;
    int id2 = lower_bound(A.begin(), A.begin() + sz, a[i].pos - a[i].h) -
              A.begin() + 1;
    int id3 = lower_bound(A.begin(), A.begin() + sz, a[i].pos + a[i].h) -
              A.begin() + 1;
    st.update(id2, id1 - 1, (100 - a[i].l) / 100.0, 1, sz, 1);
    st.update(id1 + 1, id3, (100 - a[i].r) / 100.0, 1, sz, 1);
  }
  double ans = 0;
  for (int i = 1; i <= m; i++) {
    int id = lower_bound(A.begin(), A.begin() + sz, b[i][0]) - A.begin() + 1;
    ans += st.query(id, 1, sz, 1) * b[i][1];
  }
  printf("%g\n", ans);
}
int main() {
  while (scanf("%d%d", &n, &m) != EOF) doit();
  return 0;
}
