#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include // C++ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,j,k) for(int i=(int)j;i<(int)k;i++) #define ll long long #define Sort(v) sort(all(v)) #define INF 1000000000 #define END return 0 #define pb push_back #define se second #define fi first #define pb push_back #define all(v) (v).begin() , (v).end() #define MP make_pair #define MOD 1000000007LL; using namespace std; int day[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int main(){ int n,m; int ans=0; cin>>n>>m; vector> v(n,vector(n,0)); rep(i,0,m){ int a,b; cin>>a>>b; v[a][b]=v[b][a]=1; } rep(i,0,n-3)rep(j,i+1,n-2)rep(k,j+1,n-1)rep(p,k+1,n){ if(v[i][j]&&v[j][k]&&v[k][p]&&v[i][p]&&!v[i][k]&&!v[j][p]){ ans++; continue; } if(v[i][k]&&v[k][p]&&v[p][j]&&v[j][i]&&!v[i][p]&&!v[k][j]){ ans++; continue; } if(v[i][j]&&v[j][p]&&v[p][k]&&v[k][i]&&!v[i][p]&&!v[k][j]){ ans++; } } cout<