#! /usr/bin/gawk -f

# first record: prefixes

# general input record format:
#  $1  = total count for suffix
#  $2  = the suffix
#  $3- = the counts for prefix/suffix combination

BEGIN { 
  NPREF = 0; 
  PFWD=12; PFDASH = ""; for(i=0;i<PFWD;i++) PFDASH = (PFDASH "-")
  CTWD=5;  CTDASH = ""; for(i=0;i<CTWD;i++) CTDASH = (CTDASH "-")
}

function dashes(n) {
  printf "%s %s", PFDASH, CTDASH
  for (i=1;i<=n;i++) printf " %s", CTDASH
  printf "\n"
}

(NR == 1) {
  NPREF = NF
  printf "\n"
  printf "%-*s %*s", PFWD, "SUFFIX", CTWD, "TOTAL"
  for (i=1;i<=NPREF;i++) { printf " %*s", CTWD, $(i) }
  printf "\n"
  dashes(NPREF)
  next
}

/./ {
  printf "%-*s %*d", PFWD, $2, CTWD, $1
  for (i=1;i<=NPREF;i++) 
    { totct[i] += $(i+2)
      tottot += $(i+2)
      printf " %*d", CTWD, $(i+2)
    }
  printf "\n"
  next
}

END {
  dashes(NPREF);
  printf "%-*s", PFWD, "TOTALORUM"
  printf " %*d", CTWD, tottot
  for (i=1;i<=NPREF;i++) { printf " %*d", CTWD, totct[i] }
  printf "\n"
}