#include <bits/stdc++.h>
using namespace std;
#define read(type) readInt<type>() // Fast read
#define ll long long
#define ld long double
#define nL "\n"
#define pb push_back
#define mk make_pair
#define pii pair<int, int>
#define a first
#define b second
#define vi vector<int>
#define all(x) (x).begin(), (x).end()
#define umap unordered_map
#define uset unordered_set
#define MOD 1000000007
#define imax INT_MAX
#define imin INT_MIN
#define exp 1e9
#define sz(x) (int((x).size()))
int freq[103];
bool comparator(const pair<pair<int,int>, pair<int,int>>& left, const pair<pair<int,int>, pair<int,int>>& right) {
cout << "left: " << left.a.a << " " << left.a.b;
cout << " right: " << right.a.a << " " << right.a.b << endl;
double lc = 0;
for(auto i = left.a.a; i <= left.a.b; i++) {
if (freq[i] != 0) {lc++;}
}
cout << "lc " << lc << endl;
double lr = (lc * (double)left.b.a) / (double)left.b.b;
double rc = 0;
for(auto i = right.a.a; i <= right.a.b; i++) {
if (freq[i] != 0) {rc++;}
}
double rr = (lc * (double)right.b.a) / (double)right.b.b;
cout << "left: " << lr << " right: " << rr << endl;
return lr > rr;
}
void solve() {
int n, m; cin >> n >> m;
memset(freq, 0, sizeof(freq));
while(n--) {
int u, v, c; cin >> u >> v >> c;
for(auto i = u; i <= v; i++) {freq[i] = c;}
}
vector<pair<pair<int,int>, pair<int, int>>> air;
while(m--) {
int s, t, c, m; cin >> s >> t >> c >> m;
air.pb(mk(mk(s,t),mk(c,m)));
}
sort(all(air), comparator);
for(auto p : air) {
cout << "Init: " << p.a.a << " Dest: " << p.a.b << endl;
}
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgcmVhZCh0eXBlKSByZWFkSW50PHR5cGU+KCkgLy8gRmFzdCByZWFkCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBuTCAiXG4iCiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbWsgbWFrZV9wYWlyCiNkZWZpbmUgcGlpIHBhaXI8aW50LCBpbnQ+CiNkZWZpbmUgYSBmaXJzdAojZGVmaW5lIGIgc2Vjb25kCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIHVtYXAgdW5vcmRlcmVkX21hcAojZGVmaW5lIHVzZXQgdW5vcmRlcmVkX3NldAojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgaW1heCBJTlRfTUFYCiNkZWZpbmUgaW1pbiBJTlRfTUlOCiNkZWZpbmUgZXhwIDFlOQojZGVmaW5lIHN6KHgpIChpbnQoKHgpLnNpemUoKSkpCmludCBmcmVxWzEwM107IAoKYm9vbCBjb21wYXJhdG9yKGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIGxlZnQsIGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIHJpZ2h0KSB7CiAgICBjb3V0IDw8ICJsZWZ0OiAiIDw8IGxlZnQuYS5hIDw8ICIgIiA8PCBsZWZ0LmEuYjsKICAgIGNvdXQgPDwgIiByaWdodDogIiA8PCByaWdodC5hLmEgPDwgIiAiIDw8IHJpZ2h0LmEuYiA8PCBlbmRsOwogICAgZG91YmxlIGxjID0gMDsKICAgIGZvcihhdXRvIGkgPSBsZWZ0LmEuYTsgaSA8PSBsZWZ0LmEuYjsgaSsrKSB7CiAgICAgICAgaWYgKGZyZXFbaV0gIT0gMCkge2xjKys7fQogICAgfQogICAgY291dCA8PCAibGMgIiA8PCBsYyA8PCBlbmRsOyAKICAgIGRvdWJsZSBsciA9IChsYyAqIChkb3VibGUpbGVmdC5iLmEpIC8gKGRvdWJsZSlsZWZ0LmIuYjsKCiAgICBkb3VibGUgcmMgPSAwOwogICAgZm9yKGF1dG8gaSA9IHJpZ2h0LmEuYTsgaSA8PSByaWdodC5hLmI7IGkrKykgewogICAgICAgIGlmIChmcmVxW2ldICE9IDApIHtyYysrO30KICAgIH0gCgogICAgZG91YmxlIHJyID0gKGxjICogKGRvdWJsZSlyaWdodC5iLmEpIC8gKGRvdWJsZSlyaWdodC5iLmI7CiAgICBjb3V0IDw8ICJsZWZ0OiAiIDw8IGxyIDw8ICIgcmlnaHQ6ICIgPDwgcnIgPDwgZW5kbDsKICAgIHJldHVybiBsciA+IHJyOwp9CgoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuLCBtOyBjaW4gPj4gbiA+PiBtOwogICAgbWVtc2V0KGZyZXEsIDAsIHNpemVvZihmcmVxKSk7ICAgCiAgICAKICAgIHdoaWxlKG4tLSkgewogICAgICAgIGludCB1LCB2LCBjOyBjaW4gPj4gdSA+PiB2ID4+IGM7CiAgICAgICAgZm9yKGF1dG8gaSA9IHU7IGkgPD0gdjsgaSsrKSB7ZnJlcVtpXSA9IGM7fQogICAgfQoKICAgIHZlY3RvcjxwYWlyPHBhaXI8aW50LGludD4sIHBhaXI8aW50LCBpbnQ+Pj4gYWlyOwogICAgd2hpbGUobS0tKSB7CiAgICAgICBpbnQgcywgdCwgYywgbTsgY2luID4+IHMgPj4gdCA+PiBjID4+IG07CiAgICAgICBhaXIucGIobWsobWsocyx0KSxtayhjLG0pKSk7IAogICAgfQoKICAgIHNvcnQoYWxsKGFpciksIGNvbXBhcmF0b3IpOwoKICAgIGZvcihhdXRvIHAgOiBhaXIpIHsKICAgICAgICBjb3V0IDw8ICJJbml0OiAiIDw8IHAuYS5hIDw8ICIgRGVzdDogIiA8PCBwLmEuYiA8PCBlbmRsOyAKICAgIH0KCgp9CiAKIAogCmludDMyX3QgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIHNvbHZlKCk7IAogICAgcmV0dXJuIDA7Cn0=