#include <stdio.h>
#include <stdlib.h>

#define N 350

#define MAXSTOPS 100
#define MAXXLINES 4

#define MAXC  100

int main()
{
  int i, j, p, q, m, n;
  int lin[MAXSTOPS][MAXSTOPS];
  
  printf("%d\n", N);
  for (i=0; i<N; i++)
  {
    p=rand() % (MAXSTOPS-4) +5;
    q=rand() % (MAXXLINES*p);
    
    if (q<2*p) q=2*p;
    
    for (m=0; m<p; m++)
     for (n=0; n<p; n++)
      lin[m][n]=0;

    printf("%d %d\n", p, q);

    /* zajisti, kazda stanice je dosazitelna z stanice 0 */
    for (j=1; j<p; j++)
    {
      int a, b;
      a=j - 1;
      b=j;
      lin[a][b]=1;
      printf("%d %d %d\n", a+1, b +1, rand() % MAXC +1);
    }

    /* z posledni stanice vede cesta do prvni -> lze se dostat vsude odevsad */
    printf("%d %d %d\n", p-1 +1, 0 +1, rand() % MAXC +1);
    /* tj. celkem p linek */
    
    for (j=p; j<q; j++)
    {
      int a, b;
      do
      {
        a=rand() % p;
        b=rand() % p;
        if (a==b) b=(a+1) % p;
      } while (lin[a][b]==1);
      lin[a][b]=1;
      
      printf("%d %d %d\n", a +1, b +1, rand() % MAXC +1);
    }
  }

  return 0;
}
