#include using namespace std; using ll = long long; using ld = long double; using Pair = pair; using Tuple = tuple; using VI1 = vector; using VI2 = vector; using VL1 = vector; using VL2 = vector; using VD1 = vector; using VD2 = vector; using VB1 = vector; using VB2 = vector; using VP1 = vector; using VP2 = vector; using VT1 = vector; using VT2 = vector; using Queue = queue; using DQ = deque; using PQ = priority_queue, greater>; using Table = VI2; using Graph = VI2; auto solve() { int N, M; cin >> N >> M; VI1 csum(N + 1, 0); for (int i = 0; i < M; ++i) { int Li, Ri; cin >> Li >> Ri; int l = N - Li, r = N - Ri; ++csum.at(l); --csum.at(r + 1); } for (int i = 0; i < N; ++i) { csum.at(i + 1) += csum.at(i); } csum.pop_back(); return csum; } template void output_row(std::vector &row) { int N = row.size(); for (int i = 0; i < N; ++i) { if (i > 0) cout << ' '; cout << row.at(i); } cout << '\n'; } template void output_col(std::vector &col) { int N = col.size(); for (int i = 0; i < N; ++i) { cout << col.at(i) << '\n'; } } int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); auto result = solve(); output_col(result); }