#include <bits/stdc++.h>
using namespace std;
int main(void) {
  int nki, nnameko;
  cin >> nki >> nnameko;
  priority_queue<pair<pair<int, int>, int>, vector<pair<pair<int, int>, int> >,
                 greater<pair<pair<int, int>, int> > >
      disasters;
  for (int i = 0; i < nki; ++i) {
    int pos, height, pl, pr;
    cin >> pos >> height >> pl >> pr;
    disasters.push(
        pair<pair<int, int>, int>(pair<int, int>(pos - height, pos - 1), pl));
    disasters.push(
        pair<pair<int, int>, int>(pair<int, int>(pos + 1, pos + height), pr));
  }
  priority_queue<pair<int, int>, vector<pair<int, int> >,
                 greater<pair<int, int> > >
      nameko;
  for (int i = 0; i < nnameko; ++i) {
    int pos, magic;
    cin >> pos >> magic;
    nameko.push(pair<int, int>(pos, magic));
  }
  multimap<int, int> barriers;
  double barrier_left_prob_log = 0.0;
  int barrier_100s = 0;
  double result = 0.0;
  while (!nameko.empty()) {
    const pair<int, int> head_nameko = nameko.top();
    nameko.pop();
    int nameko_cur = head_nameko.first;
    while (!disasters.empty()) {
      const pair<pair<int, int>, int> top = disasters.top();
      if (top.first.first <= nameko_cur) {
        disasters.pop();
        barriers.insert(pair<int, int>(top.first.second, top.second));
        if (top.second == 100) {
          ++barrier_100s;
        } else {
          barrier_left_prob_log += log(1.0 - (double)top.second / 100.0);
        }
      } else {
        break;
      }
    }
    while (!barriers.empty()) {
      multimap<int, int>::iterator it = barriers.begin();
      if (it->first < nameko_cur) {
        if (it->second == 100) {
          --barrier_100s;
        } else {
          barrier_left_prob_log -= log(1.0 - (double)it->second / 100.0);
        }
        barriers.erase(it);
      } else
        break;
    }
    if (barrier_100s == 0) {
      const double score = head_nameko.second * exp(barrier_left_prob_log);
      result += score;
    }
  }
  cout.setf(ios::fixed);
  cout << setprecision(10);
  cout << result << endl;
  return 0;
}
