#include // #include using namespace std; // using namespace atcoder; // const long long mod = 1e9 + 7; const long long mod = 998244353; const double PI = acos(-1); using ll = long long; using PII = pair; using PLL = pair; #define REP(i,n) for(int i=0, i##_len=(n); i(b);i--) #define rep(i,a,b) for(int i=(a);i<(b);i++) // begin() end() #define all(x) (x).begin(),(x).end() //出力系 #define print(x) cout << x << endl #define prints(x) cout << fixed << setprecision(12) << x << endl #define printc(x) cout << setw(6) << setfill('0') << x << endl; #define yes cout << "Yes" << endl #define YES cout << "YES" << endl #define no cout << "No" << endl #define NO cout << "NO" << endl //最大公約数 ll gcd(ll x, ll y) { return y ? gcd(y,x%y) : x;} // 最小公倍数 unsigned lcm(unsigned a, unsigned b){ return a / gcd(a, b) * b; } const int INF = 1000000000; const double DINF = 1LL<<60; const long long LINF = 1LL<<60; const int MAX = 510000; template inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } // Nは問題によって変更すること // vectorind(N); // REP(i, N) ind[i]= i; //sort(all(ind), [&](int i, int j) {return x[i] < x[j];}); ll dy[4] = {0, 1, 0, -1}, dx[4] = {1, 0, -1, 0}; // ll dy[8] = {0, 1, 1, 1, 0, -1, -1, -1}, dx[8] = {1, 1, 0, -1, -1, -1, 0, 1}; // ACL segtree用 segtreeseg(N)のように宣言 // ll op(ll a, ll b){ // return a + b; // } // ll e(){ // return 0LL; // } vector>G; int main() { int N, M; cin >> N >> M; vectorV(N); REP(i, M){ ll l, r; cin >> l >> r; V[r - 1]++; V[l]--; } REP(i, N - 1) V[i + 1] += V[i]; rrep(i, N - 1, -1) cout << V[i] << endl; return 0; }