import copy


def split_box(box):
    """Returns a list of (possibly just one) boxes, with appropriate widths."""
    w = box.right - box.left
    h = box.top - box.bottom
    assert h > 0
    if w < 21: return [box]  # probably just a single letter.
    if h > w:  return [box]  # maybe it's just large, not wide

    num_ways = int(round(w / 12.0))
    assert num_ways > 1, w

    boxes = []
    for i in range(0, num_ways):
        b = copy.deepcopy(box)
        b.left = box.left + int(round((1.0 * i / num_ways * w)))
        b.right = box.left + int(round((1.0 * (i + 1) / num_ways * w)))
        boxes.append(b)
    return boxes