#include <bits/stdc++.h>
using namespace std;
vector<pair<int, int> > tr, mu;
int n, m;
void init() {
  int i, j, a, h, l, r;
  for (i = 0; i < n; i++) {
    scanf("%d %d %d %d", &a, &h, &l, &r);
    tr.push_back(make_pair(a - h, l));
    tr.push_back(make_pair(a, -l));
    tr.push_back(make_pair(a + 1, r));
    tr.push_back(make_pair(a + h + 1, -r));
  }
  for (i = 0; i < m; i++) {
    scanf("%d %d", &a, &h);
    mu.push_back(make_pair(a, h));
  }
  sort(tr.begin(), tr.end());
  sort(mu.begin(), mu.end());
}
void gao() {
  int i, j, cnt = 0, sz = tr.size();
  double p = 0, ans = 0;
  for (i = j = 0; i < m; i++) {
    int idx = mu[i].first, tp;
    while (j < sz && tr[j].first <= idx) {
      tp = tr[j].second;
      if (tp > 0) {
        if (tp == 100)
          cnt++;
        else
          p += log(1.0 - tp * 1.0 / 100);
      }
      if (tp < 0) {
        tp *= -1;
        if (tp == 100)
          cnt--;
        else
          p -= log(1.0 - tp * 1.0 / 100);
      }
      ++j;
    }
    if (!cnt) ans += double(mu[i].second) * exp(p);
  }
  printf("%.04lf\n", ans);
}
int main() {
  while (scanf("%d %d", &n, &m) != EOF) {
    init();
    gao();
  }
}
