#include<bits/stdc++.h>
using namespace std;
#define rep(i,a,b) for(int i=a;i<b;i++)
typedef long long ll;
int N, M;
int A[90101], B[90101];
//-----------------------------------------------------------------
int E[301][301];
vector<int> cand[301];
int cnt[301][301];
void pre() {
rep(i, 0, M) E[A[i]][B[i]] = 1;
rep(i, 0, M) cand[A[i]].push_back(B[i]);
rep(a, 1, N + 1) rep(b, a, N + 1) rep(c, 1, N + 1) {
if (E[a][c] && E[b][c]) {
cnt[a][b]++;
}
}
}
//-----------------------------------------------------------------
int main() {
cin >> N >> M;
rep(i, 0, M) scanf("%d%d", &A[i], &B[i]);
pre();
ll ans = 0;
rep(i, 0, M) {
for (int a : cand[A[i]]) {
int b = B[i];
if (a > b) swap(a, b);
ans += cnt[a][b];
}
}
cout << ans << endl;
}
./Main.cpp: In function ‘int main()’:
./Main.cpp:28:42: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
rep(i, 0, M) scanf("%d%d", &A[i], &B[i]);
^