#include <bits/stdc++.h>
using namespace std;
long long n, m, a[100000], h[100000];
long long l[100000], r[100000], b[100000], part0[100000];
long double part[100000], ans;
pair<long long, long long> c[100000];
int main() {
  cin >> n >> m;
  for (int i = 0; i < 100000; i++) part[i] = 1;
  for (int i = 0; i < n; i++) cin >> a[i] >> h[i] >> l[i] >> r[i];
  for (int i = 0; i < m; i++) cin >> c[i].first >> c[i].second;
  sort(c, c + m);
  for (int i = 0; i < m; i++) b[i] = c[i].first;
  for (int i = 0; i < n; i++) {
    long long ex;
    ex = upper_bound(b, b + m, a[i]) - b;
    if (r[i] != 100)
      part[ex] *= (long double)(100 - r[i]) / 100;
    else
      part0[ex]++;
    ex = upper_bound(b, b + m, a[i] + h[i]) - b;
    if (r[i] != 100)
      part[ex] /= (long double)(100 - r[i]) / 100;
    else
      part0[ex]--;
    ex = lower_bound(b, b + m, a[i]) - b;
    if (l[i] != 100)
      part[ex] /= (long double)(100 - l[i]) / 100;
    else
      part0[ex]--;
    ex = lower_bound(b, b + m, a[i] - h[i]) - b;
    if (l[i] != 100)
      part[ex] *= (long double)(100 - l[i]) / 100;
    else
      part0[ex]++;
  }
  for (int i = 0; i < m; i++) {
    if (i) part[i] *= part[i - 1];
    if (i) part0[i] += part0[i - 1];
    if (!part0[i]) ans += (long double)c[i].second * part[i];
  }
  cout << fixed << setprecision(15) << ans;
  return 0;
}
