#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) {
double lc = 0;
for(auto i = left.a.a; i <= left.a.b; i++) {
if (freq[i] != 0) {lc++;}
}
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+CiNkZWZpbmUgYSBmaXJzdAojZGVmaW5lIGIgc2Vjb25kCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIHVtYXAgdW5vcmRlcmVkX21hcAojZGVmaW5lIHVzZXQgdW5vcmRlcmVkX3NldAojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgaW1heCBJTlRfTUFYCiNkZWZpbmUgaW1pbiBJTlRfTUlOCiNkZWZpbmUgZXhwIDFlOQojZGVmaW5lIHN6KHgpIChpbnQoKHgpLnNpemUoKSkpCmludCBmcmVxWzEwM107IAoKYm9vbCBjb21wYXJhdG9yKGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIGxlZnQsIGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIHJpZ2h0KSB7CiAgICBkb3VibGUgbGMgPSAwOwogICAgZm9yKGF1dG8gaSA9IGxlZnQuYS5hOyBpIDw9IGxlZnQuYS5iOyBpKyspIHsKICAgICAgICBpZiAoZnJlcVtpXSAhPSAwKSB7bGMrKzt9CiAgICB9CiAgICBkb3VibGUgbHIgPSAobGMgKiAoZG91YmxlKWxlZnQuYi5hKSAvIChkb3VibGUpbGVmdC5iLmI7CgogICAgZG91YmxlIHJjID0gMDsKICAgIGZvcihhdXRvIGkgPSByaWdodC5hLmE7IGkgPD0gcmlnaHQuYS5iOyBpKyspIHsKICAgICAgICBpZiAoZnJlcVtpXSAhPSAwKSB7cmMrKzt9CiAgICB9IAoKICAgIGRvdWJsZSByciA9IChsYyAqIChkb3VibGUpcmlnaHQuYi5hKSAvIChkb3VibGUpcmlnaHQuYi5iOwogICAgY291dCA8PCAibGVmdDogIiA8PCBsciA8PCAiIHJpZ2h0OiAiIDw8IHJyIDw8IGVuZGw7CiAgICByZXR1cm4gbHIgPiBycjsKfQoKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbiwgbTsgY2luID4+IG4gPj4gbTsKICAgIG1lbXNldChmcmVxLCAwLCBzaXplb2YoZnJlcSkpOyAgIAogICAgCiAgICB3aGlsZShuLS0pIHsKICAgICAgICBpbnQgdSwgdiwgYzsgY2luID4+IHUgPj4gdiA+PiBjOwogICAgICAgIGZvcihhdXRvIGkgPSB1OyBpIDw9IHY7IGkrKykge2ZyZXFbaV0gPSBjO30KICAgIH0KCiAgICB2ZWN0b3I8cGFpcjxwYWlyPGludCxpbnQ+LCBwYWlyPGludCwgaW50Pj4+IGFpcjsKICAgIHdoaWxlKG0tLSkgewogICAgICAgaW50IHMsIHQsIGMsIG07IGNpbiA+PiBzID4+IHQgPj4gYyA+PiBtOwogICAgICAgYWlyLnBiKG1rKG1rKHMsdCksbWsoYyxtKSkpOyAKICAgIH0KCiAgICBzb3J0KGFsbChhaXIpLCBjb21wYXJhdG9yKTsKCiAgICBmb3IoYXV0byBwIDogYWlyKSB7CiAgICAgICAgY291dCA8PCAiSW5pdDogIiA8PCBwLmEuYSA8PCAiIERlc3Q6ICIgPDwgcC5hLmIgPDwgZW5kbDsgCiAgICB9CgoKfQogCiAKIAppbnQzMl90IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUoTlVMTCk7CiAgICBzb2x2ZSgpOyAKICAgIHJldHVybiAwOwp9