Return the maximum shape of an array covered by a block.

    :param blk: the N-dimensional shape of the block
    :param shape: the N-dimensional shape of the array
    :return: the shape of the covered region

    Example:

        >>> max_blk_coverage(blk=(7, 6), shape=(100, 43))
        (98, 42)

def max_blk_coverage(blk, shape):
    """Return the maximum shape of an array covered by a block.

    :param blk: the N-dimensional shape of the block
    :param shape: the N-dimensional shape of the array
    :return: the shape of the covered region

    Example:

        >>> max_blk_coverage(blk=(7, 6), shape=(100, 43))
        (98, 42)


    """
    return tuple(blk_coverage_1d(b, s)[0] for b, s in zip(blk, shape))