#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:536870912")
#pragma warning(disable : 4996)
using namespace std;
const int N = 5e5 + 100, D = 105;
vector<int> v;
int x[N], l[N], r[N], h[N], b[N], z[N], zer[N], pr[D];
int cp = 0;
double t[N];
bool np[D];
void f(int x, int p, int q) {
  int j = lower_bound(v.begin(), v.end(), x) - v.begin();
  if (!p)
    zer[j]++;
  else if (!q)
    zer[j]--;
  else
    t[j] += log(p * 1.0 / q);
}
int main() {
  for (int i = 2; i < D; i++) {
    if (!np[i]) {
      pr[cp++] = i;
      for (int j = i * i; j < D; j += i) np[j] = 1;
    }
  }
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%d%d%d%d", &x[i], &h[i], &l[i], &r[i]);
    l[i] = 100 - l[i];
    r[i] = 100 - r[i];
    v.push_back(x[i] - h[i]);
    v.push_back(x[i] + h[i] + 1);
    v.push_back(x[i] + 1);
    v.push_back(x[i]);
  }
  for (int i = 0; i < m; i++) {
    scanf("%d%d", &b[i], &z[i]);
    v.push_back(b[i]);
  }
  sort(v.begin(), v.end());
  for (int i = 0; i < n; i++) {
    f(x[i] - h[i], l[i], 100);
    f(x[i], 100, l[i]);
    f(x[i] + 1, r[i], 100);
    f(x[i] + h[i] + 1, 100, r[i]);
  }
  for (int i = 1; i < v.size(); i++) {
    zer[i] += zer[i - 1];
    t[i] += t[i - 1];
  }
  double ans = 0;
  for (int i = 0; i < m; i++) {
    int j = lower_bound(v.begin(), v.end(), b[i]) - v.begin();
    if (!zer[j]) ans += exp(t[j]) * z[i];
  }
  printf("%.7f", ans);
  return 0;
}
