#include<bits/stdc++.h>
using namespace std;
#define ll long long
vector<int> par;
vector<vector<int>> g;
int root(int i){
if(par[i]==i){
return i;
}
int ri=root(par[i]);
return par[i]=ri;
}
void join(int i,int j){
int ri=root(i),rj=root(j);
if(ri==rj){
return;
}
par[rj]=ri;
}
vector<int> rm;
bool dfs(int i,int c,int f,int z){
if(rm[i]==1){
return false;
}
rm[i]=1;
if(i==c){
z=1;
}
if(i==f and z==1){
return true;
}
for(auto x:g[i]){
if(rm[x]==0){
if(dfs(x,c,f,z)){
return true;
}
}
}
rm[i]=0;
return false;
}
void solve(){
int n,m;
cin>>n>>m;
par.resize(n+1);
g.resize(n+1);
rm.resize(n+1,0);
for(int a=1;a<=n;a++){
par[a]=a;
}
for(int a=0;a<m;a++){
int u,v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
ll D=0;
for(int a=1;a<=n;a++){
for(int b=1;b<=n;b++){
for(int c=1;c<=n;c++){
if(a!=b and b!=c and c!=a){
if(dfs(a,b,c,0)){
D++;
}
fill(rm.begin(),rm.end(),0);
}
}
}
}
cout<<D<<endl;
}
signed main(){
ios::sync_with_stdio();
cin.tie(0);
cout.tie(0);
ll t=1;
// cin>>t;
for(ll a=0;a<t;a++){
solve();
}
}