#include<bits/stdc++.h>
using namespace std;
int to[1000];
int first[1000];
int next[2000];
int a[10];
bool vis[1000];
int sum;
void dfs(int x,int step){
if(step==3)
{
if(a[0]==a[1]||a[0]==a[2]||a[1]==a[2]||a[1]==a[3]||a[2]==a[3])
{
return;
}
else
{
sum++;
return;
}
}
for(int i = first[x];i != 0;next[i])
{
int e = to[i];
if(vis[e] == 0)
{
vis[e]=1;
a[step] = e;
dfs(e,step+1);
a[step] = 0;
vis[e] = 0;
}
}
}
int main()
{
int n,m;
cin >> n >> m;
for(int i=1;i<=m;i++)
{
int v,u;
cin >> v >> u;
to[i] = u;
next[i] = first[v];
first[v] = i;
to[m+i] = v;
next[m+i] = first[u];
first[u] = m+i;
}
for(int i=1;i<=n;i++)
{
vis[i]=1;
dfs(i,0);
vis[i]=0;
}
cout << sum ;
return 0;
}