#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
const double eps = 1e-8;
struct p {
  double l, r;
  int x, h;
} tree[N];
struct pp {
  int x, v;
} mr[N];
bool cmp(pp a, pp b) { return a.x < b.x; }
struct line {
  int l, r, mid;
  double v;
} arr[4 * N];
void build(int L, int R, int c) {
  arr[c].l = L;
  arr[c].r = R;
  arr[c].mid = (L + R) / 2;
  arr[c].v = 1.0;
  if (L == R) return;
  build(L, arr[c].mid, c + c);
  build(arr[c].mid + 1, R, c + c + 1);
}
void down(int c) {
  if (arr[c].v + eps < 1.0) {
    arr[c + c].v *= arr[c].v;
    arr[c + c + 1].v *= arr[c].v;
    arr[c].v = 1.0;
  }
}
void cover(int L, int R, int c, double v) {
  if (L <= arr[c].l && R >= arr[c].r) {
    arr[c].v *= v;
    return;
  }
  down(c);
  if (L <= arr[c].mid) cover(L, R, c + c, v);
  if (R > arr[c].mid) cover(L, R, c + c + 1, v);
}
double res = 0.0;
void get(int c) {
  if (arr[c].l == arr[c].r) {
    res += arr[c].v * mr[arr[c].l].v;
    return;
  }
  down(c);
  get(c + c);
  get(c + c + 1);
}
int n;
int find1(int x) {
  if (x > mr[n].x) return n + 1;
  int low = 0, high = n, mid;
  while (low < high - 1) {
    mid = (low + high) / 2;
    if (mr[mid].x >= x)
      high = mid;
    else
      low = mid;
  }
  return high;
}
int find2(int x) {
  if (x < mr[1].x) return 0;
  int low = 1, high = n + 1, mid;
  while (low < high - 1) {
    mid = (low + high) / 2;
    if (mr[mid].x <= x)
      low = mid;
    else
      high = mid;
  }
  return low;
}
int main() {
  int m, i;
  scanf("%d%d", &m, &n);
  for (i = 0; i < m; i++) {
    scanf("%d%d%lf%lf", &tree[i].x, &tree[i].h, &tree[i].l, &tree[i].r);
    tree[i].l /= 100.0;
    tree[i].r /= 100.0;
  }
  for (i = 1; i <= n; i++) {
    scanf("%d%d", &mr[i].x, &mr[i].v);
  }
  sort(mr + 1, mr + n + 1, cmp);
  build(1, n, 1);
  int l, r;
  for (i = 0; i < m; i++) {
    l = find1(tree[i].x - tree[i].h);
    r = find2(tree[i].x - 1);
    if (l <= r) cover(l, r, 1, 1.0 - tree[i].l);
    l = find1(tree[i].x + 1);
    r = find2(tree[i].x + tree[i].h);
    if (l <= r) cover(l, r, 1, 1.0 - tree[i].r);
  }
  get(1);
  printf("%lf\n", res);
  return 0;
}
