- /// Milk Pumping Gold USACO 
- /// Author: PmQwerty 
- #include<bits/stdc++.h> 
- using namespace std; 
- const int MAXN = 1010; 
- const int INF = 1e9 + 7; 
- struct Edge{ 
-     int u; 
-     int w; 
-     int f; 
-     Edge(){ 
-     } 
-     Edge(int u, int w, int f): u(u), w(w), f(f) {} 
- }; 
- vector<Edge> a[MAXN]; 
- int n, m; 
- int d[MAXN]; 
- int dijkstra(int f){ 
-     priority_queue<pair<int, int>> pq; 
-     for (int i = 0; i < n; i++){ 
-          d[i] = INF; 
-     } 
-     d[0] = 0; 
-     pq.push({0, 0}); 
-     while (!pq.empty()){ 
-         int u = pq.top().second; 
-         int w = pq.top().first; 
-         pq.pop(); 
-         for (Edge v: a[u]){ 
-              if (v.f < f) continue; 
-              if (d[v.u] > w + v.w){ 
-                  d[v.u] = w + v.w; 
-                  pq.push({d[v.u], v.u}); 
-              } 
-         } 
-     } 
-     return (d[n - 1] == INF ? -1 : d[n - 1]); 
- } 
- int main(){ 
-     //freopen("pump.in", "r", stdin); 
-     //freopen("pump.out", "w", stdout); 
-     ios_base::sync_with_stdio(0); 
-     cin.tie(0); 
-     cin >> n >> m; 
-     vector<int> flows; 
-     for (int i = 1; i <= m; i++){ 
-          int u, v, c, f; 
-          cin >> u >> v >> c >> f; 
-          flows.push_back(f); 
-          u--; 
-          v--; 
-          a[u].push_back(Edge(v, c, f)); 
-          a[v].push_back(Edge(u, c, f)); 
-     } 
-     int ans = -1; 
-     for (int f: flows){ 
-          int cur = dijkstra(f); 
-          if (cur == -1) continue; 
-          double r = f * 1.0 / cur; 
-          ans = max(ans, (int)(r * 1e6)); 
-     } 
-     cout << ans << '\n'; 
- } 
-   
				Ly8vIE1pbGsgUHVtcGluZyBHb2xkIFVTQUNPCi8vLyBBdXRob3I6IFBtUXdlcnR5CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNQVhOID0gMTAxMDsKY29uc3QgaW50IElORiA9IDFlOSArIDc7CnN0cnVjdCBFZGdlewogICAgaW50IHU7CiAgICBpbnQgdzsKICAgIGludCBmOwogICAgRWRnZSgpewogICAgfQogICAgRWRnZShpbnQgdSwgaW50IHcsIGludCBmKTogdSh1KSwgdyh3KSwgZihmKSB7fQp9Owp2ZWN0b3I8RWRnZT4gYVtNQVhOXTsKaW50IG4sIG07CmludCBkW01BWE5dOwppbnQgZGlqa3N0cmEoaW50IGYpewogICAgcHJpb3JpdHlfcXVldWU8cGFpcjxpbnQsIGludD4+IHBxOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspewogICAgICAgICBkW2ldID0gSU5GOwogICAgfQogICAgZFswXSA9IDA7CiAgICBwcS5wdXNoKHswLCAwfSk7CiAgICB3aGlsZSAoIXBxLmVtcHR5KCkpewogICAgICAgIGludCB1ID0gcHEudG9wKCkuc2Vjb25kOwogICAgICAgIGludCB3ID0gcHEudG9wKCkuZmlyc3Q7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgZm9yIChFZGdlIHY6IGFbdV0pewogICAgICAgICAgICAgaWYgKHYuZiA8IGYpIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKGRbdi51XSA+IHcgKyB2LncpewogICAgICAgICAgICAgICAgIGRbdi51XSA9IHcgKyB2Lnc7CiAgICAgICAgICAgICAgICAgcHEucHVzaCh7ZFt2LnVdLCB2LnV9KTsKICAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gKGRbbiAtIDFdID09IElORiA/IC0xIDogZFtuIC0gMV0pOwp9CmludCBtYWluKCl7CiAgICAvL2ZyZW9wZW4oInB1bXAuaW4iLCAiciIsIHN0ZGluKTsKICAgIC8vZnJlb3BlbigicHVtcC5vdXQiLCAidyIsIHN0ZG91dCk7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNpbiA+PiBuID4+IG07CiAgICB2ZWN0b3I8aW50PiBmbG93czsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKyl7CiAgICAgICAgIGludCB1LCB2LCBjLCBmOwogICAgICAgICBjaW4gPj4gdSA+PiB2ID4+IGMgPj4gZjsKICAgICAgICAgZmxvd3MucHVzaF9iYWNrKGYpOwogICAgICAgICB1LS07CiAgICAgICAgIHYtLTsKICAgICAgICAgYVt1XS5wdXNoX2JhY2soRWRnZSh2LCBjLCBmKSk7CiAgICAgICAgIGFbdl0ucHVzaF9iYWNrKEVkZ2UodSwgYywgZikpOwogICAgfQogICAgaW50IGFucyA9IC0xOwogICAgZm9yIChpbnQgZjogZmxvd3MpewogICAgICAgICBpbnQgY3VyID0gZGlqa3N0cmEoZik7CiAgICAgICAgIGlmIChjdXIgPT0gLTEpIGNvbnRpbnVlOwogICAgICAgICBkb3VibGUgciA9IGYgKiAxLjAgLyBjdXI7CiAgICAgICAgIGFucyA9IG1heChhbnMsIChpbnQpKHIgKiAxZTYpKTsKICAgIH0KICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7Cn0K