#include <stdio.h>
#define nmax 5000
#define mmax 65600
#define bit 16
unsigned int v[nmax][nmax],st[mmax],dr[mmax];
char cnt[mmax];
int main(){
FILE *fin,*fout;
fin=fopen("triplete.in","r");
fout=fopen("triplete.out","w");
unsigned int i,j,k,n,m,x,y;
int rasp=0;
for(i=1;i<mmax;i++)
cnt[i]=cnt[i>>1]+(i&1);
fscanf(fin,"%d%d",&n,&m);
for(i=0;i<m;i++){
fscanf(fin,"%d%d",&x,&y);
x--;
y--;
unsigned int put=bit-y%bit;
v[x][y/bit]|=(1<<(y%bit));
v[y][x/bit]|=(1<<(x%bit));
st[i]=x;
dr[i]=y;
}
k=(n-1)/bit;
for(i=0;i<m;i++){
x=st[i];
y=dr[i];
for(j=0;j<=k;j++)
rasp+=cnt[v[x][j]&v[y][j]];
}
fprintf(fout,"%d",rasp/3);
fclose(fin);
fclose(fout);
return 0;
}