#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
const long long mod = 1e9 + 7;
const int inf = 1 << 30;
const int maxn = 900500;
const double EPS = 1e-7;
struct da {
  int x, ty;
  double p;
  bool operator<(const da& ot) const {
    return (make_pair(x, make_pair(ty, p)) <
            make_pair(ot.x, make_pair(ot.ty, ot.p)));
  }
};
vector<da> ev;
void solve() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < (int)(n); ++i) {
    int ai, hi, li, ri;
    scanf("%d%d", &ai, &hi);
    scanf("%d%d", &li, &ri);
    double lp = 1.0 - li / 100., rp = 1.0 - ri / 100.;
    ev.push_back({ai - hi, -1, lp});
    ev.push_back({ai - 1, 1, lp});
    ev.push_back({ai + 1, -1, rp});
    ev.push_back({ai + hi, 1, rp});
  }
  for (int i = 0; i < (int)(m); ++i) {
    int bj, zj;
    scanf("%d%d", &bj, &zj);
    ev.push_back({bj, 0, 1. * zj});
  }
  sort(ev.begin(), ev.end());
  int ze = 0;
  double pr = 0, ret = 0;
  for (auto e : ev) {
    if (e.ty == 0) {
      if (!ze) ret += exp(pr) * e.p;
    } else if (e.ty == -1) {
      if (abs(e.p) < 1e-7)
        ++ze;
      else
        pr += log(e.p);
    } else {
      if (abs(e.p) < 1e-7)
        --ze;
      else
        pr -= log(e.p);
    }
  }
  printf("%lf\n", ret);
}
int main() {
  int tc = 1;
  for (int tt = 0; tt < (int)(tc); ++tt) {
    solve();
  }
}
