#include "bits/stdc++.h" #define _CRT_SECURE_NO_WARNINGS #define rep(i,n) for(int i = 0;i < n;i++) #define REP(i,n,k) for(int i = n;i < k;i++) #define P(p) cout << (p) << endl; #define sP(p) cout << setprecision(15) << fixed << p << endl; #define Pi pair #define IINF 1e9 #define LINF 1e18 #define vi vector #define mp(a,b) make_pair(a,b) using namespace std; typedef long long ll; typedef unsigned long long ull; int dx[] = { 1, -1 , 0 , 0}; int dy[] = { 0, 0, 1, -1}; unsigned long long str_to_int(std::string str) { unsigned long long ret; std::stringstream ss; ss << str; ss >> ret; return ret; } bool isPrime(int n) { if (n <= 1)return false; if (n == 2)return true; if (n % 2 == 0)return false; for (int i = 3; i*i <= n; i += 2) { if (n%i == 0)return false; } return true; } void solve() { int n, m; cin >> n >> m; int path[51][51]; rep(i, 51)rep(j, 51) { path[i][j] = 0; } rep(i, m) { int a, b; cin >> a >> b; path[a][b] = path[b][a] = 1; } int count = 0; rep(i, n)REP(j, i + 1, n)REP(k, j + 1, n)REP(l, k + 1, n) { int h1, h2, h3, h4; h1 = path[i][j] + path[i][k] + path[i][l]; h2 = path[j][i] + path[j][k] + path[j][l]; h3 = path[k][i] + path[k][j] + path[k][l]; h4 = path[l][i] + path[l][j] + path[l][k]; if (h1 == 2 and h2 == 2 and h3 == 2 and h4 == 2)count++; } P(count); } int main() { solve(); return 0; }