//EGOI 2023 Padel Prize Pursuit
//https://qoj.ac/contest/1354/problem/7155
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using vll = vector<ll>;
const ll MAXN = 2e5+5;
vll g[MAXN], freq(MAXN,0), ans(MAXN,0);
vector<bool> vis(MAXN,false); set<pair<ll,ll>> C;
void update(ll pos,ll x){
C.erase({freq[pos],-pos});
freq[pos]+=x; C.insert({freq[pos],-pos});
}
void dfs(ll v,vll &A){
vis[v]=true; ans[-prev(C.end())->second]++;
for(auto u:g[v]){
update(A[u],v-u); dfs(u,A); update(A[u],u-v);
}
}
int main(){
ll n, m;
cin >> n >> m;
vll A(m), B(m), pst(n,-1);
for(int i=0; i<m; i++){
cin >> A[i] >> B[i];
if(pst[A[i]]!=-1) g[i].push_back(pst[A[i]]);
if(pst[B[i]]!=-1) g[i].push_back(pst[B[i]]);
pst[A[i]]=i; pst[B[i]]=-1;
}
for(int i=m-1; i>=0; i--) if(!vis[i]){
update(A[i],m-i); dfs(i,A); update(A[i],i-m);
}
for(int i=0; i<n; i++) cout << ans[i] << " ";
cout << "\n"; return 0;
}