#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;
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+CiNkZWZpbmUgYSBmaXJzdAojZGVmaW5lIGIgc2Vjb25kCiNkZWZpbmUgdmkgdmVjdG9yPGludD4KI2RlZmluZSBhbGwoeCkgKHgpLmJlZ2luKCksICh4KS5lbmQoKQojZGVmaW5lIHVtYXAgdW5vcmRlcmVkX21hcAojZGVmaW5lIHVzZXQgdW5vcmRlcmVkX3NldAojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgaW1heCBJTlRfTUFYCiNkZWZpbmUgaW1pbiBJTlRfTUlOCiNkZWZpbmUgZXhwIDFlOQojZGVmaW5lIHN6KHgpIChpbnQoKHgpLnNpemUoKSkpCmludCBmcmVxWzEwM107IAoKYm9vbCBjb21wYXJhdG9yKGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIGxlZnQsIGNvbnN0IHBhaXI8cGFpcjxpbnQsaW50PiwgcGFpcjxpbnQsaW50Pj4mIHJpZ2h0KSB7CiAgICAKCiAgICBkb3VibGUgbGMgPSAwOwogICAgZm9yKGF1dG8gaSA9IGxlZnQuYS5hOyBpIDw9IGxlZnQuYS5iOyBpKyspIHsKICAgICAgICBpZiAoZnJlcVtpXSAhPSAwKSB7bGMrKzt9CiAgICB9CiAgICBkb3VibGUgbHIgPSAobGMgKiAoZG91YmxlKWxlZnQuYi5hKSAvIChkb3VibGUpbGVmdC5iLmI7CgogICAgZG91YmxlIHJjID0gMDsKICAgIGZvcihhdXRvIGkgPSByaWdodC5hLmE7IGkgPD0gcmlnaHQuYS5iOyBpKyspIHsKICAgICAgICBpZiAoZnJlcVtpXSAhPSAwKSB7cmMrKzt9CiAgICB9IAoKICAgIGRvdWJsZSByciA9IChsYyAqIChkb3VibGUpcmlnaHQuYi5hKSAvIChkb3VibGUpcmlnaHQuYi5iOwoKICAgIHJldHVybiBsciA+IHJyOwp9CgoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuLCBtOyBjaW4gPj4gbiA+PiBtOwogICAgbWVtc2V0KGZyZXEsIDAsIHNpemVvZihmcmVxKSk7ICAgCiAgICAKICAgIHdoaWxlKG4tLSkgewogICAgICAgIGludCB1LCB2LCBjOyBjaW4gPj4gdSA+PiB2ID4+IGM7CiAgICAgICAgZm9yKGF1dG8gaSA9IHU7IGkgPD0gdjsgaSsrKSB7ZnJlcVtpXSA9IGM7fQogICAgfQoKICAgIHZlY3RvcjxwYWlyPHBhaXI8aW50LGludD4sIHBhaXI8aW50LCBpbnQ+Pj4gYWlyOwogICAgd2hpbGUobS0tKSB7CiAgICAgICBpbnQgcywgdCwgYywgbTsgY2luID4+IHMgPj4gdCA+PiBjID4+IG07CiAgICAgICBhaXIucGIobWsobWsocyx0KSxtayhjLG0pKSk7IAogICAgfQoKICAgIHNvcnQoYWxsKGFpciksIGNvbXBhcmF0b3IpOwoKICAgIGZvcihhdXRvIHAgOiBhaXIpIHsKICAgICAgICBjb3V0IDw8ICJJbml0OiAiIDw8IHAuYS5hIDw8ICIgRGVzdDogIiA8PCBwLmEuYiA8PCBlbmRsOyAKICAgIH0KCgp9CiAKIAogCmludDMyX3QgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsKICAgIHNvbHZlKCk7IAogICAgcmV0dXJuIDA7Cn0=