#include <bits/stdc++.h>
using namespace std;
long long fmin(long long a, long long b) { return a < b ? a : b; }
long long fmax(long long a, long long b) { return a > b ? a : b; }
long long fuabs(long long a) { return a > 0 ? a : -a; }
int getBit(int n, int pos) { return (n >> pos) & 1; }
bool ss(pair<int, int> a, pair<int, int> b) { return a.first < b.first; }
int main() {
  ios_base::sync_with_stdio(false);
  vector<int> ad[3005];
  vector<int> pre[3005];
  int n, m;
  cin >> n >> m;
  for (int i = 0; i < m; i++) {
    int x, y;
    cin >> x >> y;
    x--;
    y--;
    ad[x].push_back(y);
    pre[y].push_back(x);
  }
  int mark[3005];
  for (int i = 0; i < n; i++) mark[i] = -1;
  long long sum = 0;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < n; j++)
      if (i != j) {
        for (int k = 0; k < ad[i].size(); k++) mark[ad[i][k]] = i;
        long long tmp = 0;
        for (int k = 0; k < pre[j].size(); k++)
          if (mark[pre[j][k]] == i) tmp++;
        sum += tmp * (tmp - 1) / 2;
      }
  cout << sum;
}
