N, Q = gets.split.map(&:to_i) rui = Array.new(100_010, 0) scores = Array.new(100_010, 0) data = [] Q.times do i, s, t = gets.split.map(&:to_i) rui[s] += 1 rui[t] -= 1 data << [i, s, t] end 1.upto(100_000) do |t| rui[t] += rui[t - 1] end 0.upto(100_000) do |t| if rui[t] > 0 scores[t] = 1.0 / rui[t] end end rui_scores = [0.0] scores.each do |x| rui_scores << rui_scores.last + x end ans = Array.new(N, 0.0) data.each do |i, s, t| ans[i - 1] += rui_scores[t] - rui_scores[s] end puts ans