#include using namespace std; using namespace chrono; #if __has_include() #include using namespace atcoder; #endif long double op(long double a, long double b) { return a + b; } long double e() { return 0; } int main() { int64_t n, q; cin >> n >> q; vector is(q), ss(q), ts(q); for (int64_t i = 0; i < q; i++) { cin >> is[i] >> ss[i] >> ts[i]; is[i]--; } vector cnt(100001, 0); for (int64_t i = 0; i < q; i++) { cnt[ss[i]]++; cnt[ts[i]]--; } for (int64_t i = 1; i < cnt.size(); i++) { cnt[i] += cnt[i - 1]; } vector xs(cnt.size(), 0); for (int64_t i = 0; i < cnt.size(); i++) { xs[i] = (long double)(1) / cnt[i]; } segtree seg(xs); vector ans(n, 0); for (int64_t i = 0; i < q; i++) { ans[is[i]] += seg.prod(ss[i], ts[i]); } for (auto &&x : ans) { cout << fixed << setprecision(20) << x << endl; } return 0; }