#include <bits/stdc++.h>
using namespace std;
struct Event {
  int x;
  int t;
  int p;
  void set(int x_, int t_, int p_) {
    x = x_;
    t = t_;
    p = p_;
  }
};
bool operator<(const Event &a, const Event &b) {
  return (a.x < b.x || (a.x == b.x && a.t < b.t));
}
Event e[4 * 100000 + 10000];
int main() {
  int n, m;
  int a, h, l, r, b, z;
  int k = 0;
  double p, t;
  int c;
  ios_base::sync_with_stdio(false);
  cin >> n >> m;
  for (int i = 0; i < n; ++i) {
    cin >> a >> h >> l >> r;
    if (l) {
      e[k++].set(a - h, -1, l);
      e[k++].set(a - 1, +1, l);
    }
    if (r) {
      e[k++].set(a + 1, -1, r);
      e[k++].set(a + h, +1, r);
    }
  }
  for (int j = 0; j < m; ++j) {
    cin >> b >> z;
    e[k++].set(b, 0, z);
  }
  sort(e, e + k);
  p = 0;
  t = 0;
  c = 0;
  for (int i = 0; i < k; ++i)
    if (e[i].t == -1)
      if (e[i].p == 100)
        ++c;
      else
        p += log((double)(100 - e[i].p) / 100);
    else if (e[i].t == +1)
      if (e[i].p == 100)
        --c;
      else
        p -= log((double)(100 - e[i].p) / 100);
    else if (!c)
      t += exp(p) * e[i].p;
  cout.setf(cout.fixed);
  cout.precision(10);
  cout << t;
  return 0;
}
