#include using namespace std; // https://yukicoder.me/problems/no/3319 int iwaijkstra(int n, int m, vector x, vector l, vector r, vector c) { priority_queue, vector>, greater>> que; que.emplace(0, 1); vector dist(n, 1e18), vis(n); dist[0] = 0; int ans(0); while (!que.empty()) { auto [a, b] = que.top(); que.pop(), ++ans; for (int i(0); i < n; ++i) if (dist[i] < a) vis[i] = true; if (vis[b - 1]) continue; for (int i(0); i < m; ++i) if (x[i] == b) { for (int j(l[i] - 1); j < r[i]; ++j) if (!vis[j]) { dist[j] = min(dist[j], a + c[i]); que.emplace(a + c[i], j + 1); if (ans + que.size() >= 5e6) return 5e6; } } } return ans; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; vector x, l, r, c; for (int i = 0; i < m; i++) { int xx, ll, rr, cc; cin >> xx >> ll >> rr >> cc; x.push_back(xx); l.push_back(ll); r.push_back(rr); c.push_back(cc); } int ans = iwaijkstra(n, m, x, l, r, c); cout << (ans == 5e6 ? "Too Many" : to_string(ans)) << endl; }