import math


def two_unit_tdelta(tdelta):
    """Return the timedelta as a string with 2 units of time. 
    
    Args:
        tdelta (timedelta): A non-negative timedelta object.
        
    Returns:
        A string in the form #x ##y, where x and y are time units.
            
        The units are w (weeks), d (days), h (hours), and m (minutes). The
        largest unit that is not below 1 is chosen, followed by the unit
        immediately below it. If the largest unit is minutes, then it is
        displayed alone as #m.
        
        The second number is a rounded 2 digit number left padded by a zero.
        However if it is minutes, the ceiling is taken instead of rounding.
    """
    total_m =  math.ceil(tdelta.total_seconds()/60)

    week, rem_m = divmod(total_m, 60*24*7)
    day = round(rem_m/(60*24))
    if week >= 1:
        return '{}w {:02d}d'.format(int(week), day)

    day, rem_m = divmod(total_m, 60*24)
    hour = round(rem_m/60)
    if day >=1:
        return '{}d {:02d}h'.format(int(day), hour)

    hour, minute = divmod(total_m, 60)
    if hour >=1:
        return '{}h {:02d}m'.format(int(hour), int(minute))

    return '{}m'.format(total_m)