def format_report(table):
    """Return data from `table` in aligned columns of optimal width.

    Args:
        table (list[list[str, str]]): The data structure to format.  Each list
            inside the top-level one represents a row.  All rows must have
            exactly two columns and contain only strings.

    Returns:
        str: Columns sized to the longest item of that column.  The first
             column is aligned to the left, the second is to the right:

                Column number one -             Column 2
                Another row       - Second column, row 2
    """
    col_widths = tuple(max(map(len, column)) for column in zip(*table))
    row_format = '{:<%s} - {:>%s}' % col_widths

    return '\n'.join(row_format.format(*row) for row in table)