#!/usr/bin/awk -f

# Use \t as output separator
BEGIN { OFS = "\t" }

# Count number of files: increment on the first line of each new file
FNR == 1 { ++nfiles }

{
    # 2D array containing all corresponding fields across files
    for (i = 1; i <= NF; ++i) {
        values[FNR, i][nfiles] = $i
    }
}

END {
    # Loop over lines of array with sums
    for (i = 1; i <= FNR; ++i) {
        # Loop over fields of current line in array of sums
        for (j = 1; j <= NF; ++j) {
            # Headers
            if (i == 1)
            {
                $j = values[1, j][1]
                continue
            }

            # Check there was no timeout
            nvalid = nfiles
            for(k = 1; k <= nfiles; ++k)
                if (values[i, j][k] == "-")
                    nvalid -= 1

            # Build record with medians
            n = asort(values[i, j])
            if (nvalid < nfiles)
                $j = "-"
            else if (n % 2 == 0) # number of elements is even
                $j = (values[i, j][n/2] + values[i, j][n/2 + 1]) / 2
            else
                $j = values[i, j][(n+1)/2]
        }
        print $0
    }
}
