def format_fill(justify, row, widths):
    """format a "row" of text with fixed column widths
       If one column is two wide corect the width for adjacent columns
       Asume all column data are strings
       Args:
         justify (string): 'left' or 'right'
         row (list) :string data to format
         widths (list): width for each column
       Returns:
         concatinated string from <row> based on <widths>
    """
    out = ''
    sum = 0
    actual = 0
    for i, item in enumerate(row):
       width = widths[i] if sum >= actual else widths[i] - (actual - sum)
       if justify == 'right':
           out += "{:>{width}} ".format(item, width=width)
       elif justify == 'left':
           out += "{:<{width}} ".format(item, width=width)
       actual = len(out)
       sum += (widths[i] + 1)
    out += '\n'
    return out