#include <bits/stdc++.h>
using namespace std;
int i, j, k, n, m;
int in[1010], a[1010], b[1010];
int main() {
  scanf("%d%d", &n, &m);
  for (i = 1; i <= m; i++) {
    int x, y, z;
    scanf("%d%d%d", &x, &y, &z);
    a[x] = y, b[x] = z;
    in[y]++;
  }
  int s = 0;
  for (i = 1; i <= n; i++)
    if (!in[i] && a[i]) s++;
  printf("%d\n", s);
  for (i = 1; i <= n; i++)
    if (!in[i] && a[i]) {
      int mi = 1e7;
      for (k = i; a[k]; k = a[k]) mi = min(mi, b[k]);
      printf("%d %d %d\n", i, k, mi);
    }
  return 0;
}
