#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i=a;i<b;i++)
#define REP(i,b) FOR(i,0,b)
#define PB push_back
#define MP make_pair
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
int read(){
int i;
scanf("%d",&i);
return i;
}
const int maxN=100000;
const int maxM=100000;
struct Edge{
int to,weight,idx;
bool operator<(const Edge& rhs)const{
if(weight!=rhs.weight)
return weight<rhs.weight;
return to<rhs.to;
}
};
vector<Edge> g1[maxN],g2[maxN];
pii ord[maxN];
ll e2[maxM][2],v2[maxN];
ll eTri[maxM],e3[maxM][2],v3[maxN];
ll vQuad[maxN],v4[maxN];
ll s[maxN];
bool nb[maxN];
int main(){
int n=read(),m=read();
REP(i,m){
int a=read()-1,b=read()-1;
g1[a].PB(Edge{b,0,i});
g1[b].PB(Edge{a,0,i});
g2[a].PB(Edge{b,0,i});
g2[b].PB(Edge{a,0,i});
}
REP(i,n){
for(auto& e:g1[i])
e.weight=g1[e.to].size();
sort(g1[i].begin(),g1[i].end());
}
REP(i,n)
ord[i]=MP((int)g1[i].size(),i);
sort(ord,ord+n);
for(int _i=n-1;_i>=0;_i--){
int i=ord[_i].second;
for(auto&& j:g1[i]){
g1[j.to].resize(g1[j.to].size()-1);
nb[j.to]=true;
for(auto&& k:g1[j.to])
s[k.to]=0;
}
for(auto&& j:g1[i])
for(auto&& k:g1[j.to])
s[k.to]++;
for(auto&& j:g1[i])
for(auto&& k:g1[j.to]){
vQuad[i]+=s[k.to]-1;
vQuad[j.to]+=(s[k.to]-1)*2;
vQuad[k.to]+=s[k.to]-1;
if(nb[k.to]){
eTri[j.idx]+=2;
eTri[k.idx]++;
}
}
for(auto&& j:g1[i])
nb[j.to]=false;
}
REP(i,m)
eTri[i]/=2;
REP(i,n)
vQuad[i]/=2;
REP(i,n)
for(auto&& e:g2[i])
v2[i]+=e2[e.idx][i<e.to]=g2[e.to].size()-1;
REP(i,n)
for(auto&& e:g2[i])
v3[i]+=e3[e.idx][i<e.to]=v2[e.to]-e2[e.idx][e.to<i]-eTri[e.idx];
REP(i,n){
for(auto&& e:g2[i])
v4[i]+=v3[e.to]-e3[e.idx][e.to<i]-eTri[e.idx]*(g2[i].size()-2);
printf("%lld\n",v4[i]-vQuad[i]*2);
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAKI2RlZmluZSBGT1IoaSxhLGIpIGZvcihpbnQgaT1hO2k8YjtpKyspCiNkZWZpbmUgUkVQKGksYikgRk9SKGksMCxiKQojZGVmaW5lIFBCIHB1c2hfYmFjawojZGVmaW5lIE1QIG1ha2VfcGFpcgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CiAKaW50IHJlYWQoKXsKCWludCBpOwoJc2NhbmYoIiVkIiwmaSk7CglyZXR1cm4gaTsKfQogCmNvbnN0IGludCBtYXhOPTEwMDAwMDsKY29uc3QgaW50IG1heE09MTAwMDAwOwogCnN0cnVjdCBFZGdlewoJaW50IHRvLHdlaWdodCxpZHg7Cglib29sIG9wZXJhdG9yPChjb25zdCBFZGdlJiByaHMpY29uc3R7CgkJaWYod2VpZ2h0IT1yaHMud2VpZ2h0KQoJCQlyZXR1cm4gd2VpZ2h0PHJocy53ZWlnaHQ7CgkJcmV0dXJuIHRvPHJocy50bzsKCX0KfTsKdmVjdG9yPEVkZ2U+IGcxW21heE5dLGcyW21heE5dOwpwaWkgb3JkW21heE5dOwogCmxsIGUyW21heE1dWzJdLHYyW21heE5dOwpsbCBlVHJpW21heE1dLGUzW21heE1dWzJdLHYzW21heE5dOwpsbCB2UXVhZFttYXhOXSx2NFttYXhOXTsKbGwgc1ttYXhOXTsKYm9vbCBuYlttYXhOXTsKIAppbnQgbWFpbigpewoJaW50IG49cmVhZCgpLG09cmVhZCgpOwoJUkVQKGksbSl7CgkJaW50IGE9cmVhZCgpLTEsYj1yZWFkKCktMTsKCQlnMVthXS5QQihFZGdle2IsMCxpfSk7CgkJZzFbYl0uUEIoRWRnZXthLDAsaX0pOwoJCWcyW2FdLlBCKEVkZ2V7YiwwLGl9KTsKCQlnMltiXS5QQihFZGdle2EsMCxpfSk7Cgl9CglSRVAoaSxuKXsKCQlmb3IoYXV0byYgZTpnMVtpXSkKCQkJZS53ZWlnaHQ9ZzFbZS50b10uc2l6ZSgpOwoJCXNvcnQoZzFbaV0uYmVnaW4oKSxnMVtpXS5lbmQoKSk7Cgl9CglSRVAoaSxuKQoJCW9yZFtpXT1NUCgoaW50KWcxW2ldLnNpemUoKSxpKTsKCXNvcnQob3JkLG9yZCtuKTsKCWZvcihpbnQgX2k9bi0xO19pPj0wO19pLS0pewoJCWludCBpPW9yZFtfaV0uc2Vjb25kOwoJCWZvcihhdXRvJiYgajpnMVtpXSl7CgkJCWcxW2oudG9dLnJlc2l6ZShnMVtqLnRvXS5zaXplKCktMSk7CgkJCW5iW2oudG9dPXRydWU7CgkJCWZvcihhdXRvJiYgazpnMVtqLnRvXSkKCQkJCXNbay50b109MDsKCQl9CgkJZm9yKGF1dG8mJiBqOmcxW2ldKQoJCQlmb3IoYXV0byYmIGs6ZzFbai50b10pCgkJCQlzW2sudG9dKys7CgkJZm9yKGF1dG8mJiBqOmcxW2ldKQoJCQlmb3IoYXV0byYmIGs6ZzFbai50b10pewoJCQkJdlF1YWRbaV0rPXNbay50b10tMTsKCQkJCXZRdWFkW2oudG9dKz0oc1trLnRvXS0xKSoyOwoJCQkJdlF1YWRbay50b10rPXNbay50b10tMTsKCQkJCWlmKG5iW2sudG9dKXsKCQkJCQllVHJpW2ouaWR4XSs9MjsKCQkJCQllVHJpW2suaWR4XSsrOwoJCQkJfQoJCQl9CgkJZm9yKGF1dG8mJiBqOmcxW2ldKQoJCQluYltqLnRvXT1mYWxzZTsKCX0KCVJFUChpLG0pCgkJZVRyaVtpXS89MjsKCVJFUChpLG4pCgkJdlF1YWRbaV0vPTI7CglSRVAoaSxuKQoJCWZvcihhdXRvJiYgZTpnMltpXSkKCQkJdjJbaV0rPWUyW2UuaWR4XVtpPGUudG9dPWcyW2UudG9dLnNpemUoKS0xOwoJUkVQKGksbikKCQlmb3IoYXV0byYmIGU6ZzJbaV0pCgkJCXYzW2ldKz1lM1tlLmlkeF1baTxlLnRvXT12MltlLnRvXS1lMltlLmlkeF1bZS50bzxpXS1lVHJpW2UuaWR4XTsKCVJFUChpLG4pewoJCWZvcihhdXRvJiYgZTpnMltpXSkKCQkJdjRbaV0rPXYzW2UudG9dLWUzW2UuaWR4XVtlLnRvPGldLWVUcmlbZS5pZHhdKihnMltpXS5zaXplKCktMik7CgkJcHJpbnRmKCIlbGxkXG4iLHY0W2ldLXZRdWFkW2ldKjIpOwoJfQp9