#include <stdio.h>

main(int argc, char *argv[])
{
  int i, j, n, m, u, v;
  int * b;
  int * c;
  int **A;
  
  scanf("%d %d", &n, &m);
  printf("minimize\n");
  
  b = (int *) malloc((n+1) * sizeof(int));
  c = (int *) malloc((m+1) * sizeof(int));
  A = (int **) malloc((n+1) * sizeof(int *));
  for(i = 1; i <= n; i++){
    A[i] = (int *) malloc((m+1) * sizeof(int));
    for( j = 1; j <= m; j++) A[i][j] = 0;
  }
  
  /* le b */
  for(i = 1; i <= n; i++) scanf("%d", &(b[i]));
  
  /* le arcos */
  for(i = 1; i <= m; i++){
    scanf("%d %d %d", &u, &v, &(c[i]));
    A[u][i] = -1;
    A[v][i] = 1;
  }
  
  /* imprime funcao objetivo */
  for(i = 1; i <= m; i++){
    if( c[i] < 0) printf(" %dx%d ", c[i], i);
    else          printf(" +%dx%d ", c[i], i);
    if( i % 10 == 0) printf("\n");
  }
  printf("\nsubject to\n");
  
  /* imprime matriz A */
  for(i = 1; i <= n; i++){   
    for( j = 1; j<= m; j++){
      if(A[i][j] < 0) printf(" - x%d", j);
      if(A[i][j] > 0) printf(" + x%d", j);
    }
    printf(" = %d\n", b[i]);
  }
  printf("bounds\n");
  for(i = 1; i <= m; i++)
    printf("x%d >= 0\n", i);
  printf("end\n");
}

 
