#include using namespace std; #include using namespace atcoder; double op(double a, double b) { return a + b; } double e() { return 0; } const int m = 100000; int main() { int n, q; cin >> n >> q; vector I(q), S(q), T(q); vector>> dat(n); vector imos(m + 2); for (int i = 0; i < q; i++) { cin >> I[i] >> S[i] >> T[i]; I[i]--; dat[I[i]].push_back(make_pair(S[i], T[i])); imos[S[i]]++; imos[T[i]]--; } for (int i = 0; i <= m; i++) { imos[i + 1] += imos[i]; } segtree st(m + 1); for (int i = 0; i <= m; i++) { if (imos[i] > 0) { st.set(i, 1.0 / imos[i]); } } vector ans(n); for (int i = 0; i < n; i++) { for (int j = 0; j < (int)dat[i].size(); j++) { int l = dat[i][j].first; int r = dat[i][j].second; ans[i] += st.prod(l, r); } } cout << fixed << setprecision(15); for (int i = 0; i < n; i++) { cout << ans[i] << '\n'; } }