#include <iostream>
#include <vector>
using namespace std;
const int MAX_JOURS = 2000;
int nbParticipants, nbJours;
int prsnActu[MAX_JOURS], tps[MAX_JOURS][MAX_JOURS]; //[idM][idP]
void init() {
cin >> nbParticipants >> nbJours;
for (int idM = 0; idM < nbJours; idM++) {
prsnActu[idM] = -1;
for (int idP = 0; idP < nbParticipants; idP++) {
tps[idM][idP] = -1;
}
}
}
void st1() { //N = 2
int tpsST1[2000000][2];
for (int idJ = 0; idJ < nbJours; idJ++) {
int x, y;
cin >> x >> y;
for (int idM = 0; idM < idJ; idM++) {
if (prsnActu[idM] == y) {
prsnActu[idM] = x;
if (tpsST1[idM][x] == -1) tpsST1[idM][x] = 0;
}
tpsST1[idM][prsnActu[idM]]++;
}
prsnActu[idJ] = x;
tpsST1[idJ][x] = 1;
}
vector<int> nbMedailles(nbParticipants, 0);
for (int idM = 0; idM < nbJours; idM++) {
int idTpsMax = 0;
for (int idP = 0; idP < nbParticipants; idP++) {
if (tpsST1[idM][idP] > tpsST1[idM][idTpsMax]) {
idTpsMax = idP;
}
}
nbMedailles[idTpsMax]++;
//cout << "\n medaille num " << idM << " passe + de tps avec " << idTpsMax << '\n';
}
for (int idP = 0; idP < nbParticipants; idP++) {
cout << nbMedailles[idP] << ' ';
}
cout << '\n';
}
void jours() {
for (int idJ = 0; idJ < nbJours; idJ++) {
int x, y;
cin >> x >> y;
for (int idM = 0; idM < idJ; idM++) {
if (prsnActu[idM] == y) {
prsnActu[idM] = x;
if (tps[idM][x] == -1) tps[idM][x] = 0;
}
tps[idM][prsnActu[idM]]++;
}
prsnActu[idJ] = x;
tps[idJ][x] = 1;
}
}
void affiche() {
vector<int> nbMedailles(nbParticipants, 0);
for (int idM = 0; idM < nbJours; idM++) {
int idTpsMax = 0;
for (int idP = 0; idP < nbParticipants; idP++) {
if (tps[idM][idP] > tps[idM][idTpsMax]) {
idTpsMax = idP;
}
}
nbMedailles[idTpsMax]++;
//cout << "\n medaille num " << idM << " passe + de tps avec " << idTpsMax << '\n';
}
for (int idP = 0; idP < nbParticipants; idP++) {
cout << nbMedailles[idP] << ' ';
}
cout << '\n';
}
int main() {
ios::sync_with_stdio(false), cin.tie(0);
init();
if (nbParticipants == 2) st1();
else {
jours();
affiche();
}
return 0;
}