def number_base_converter(number: str, from_base: int, to_base: int) -> str:
    if not (2 <= from_base <= 36) or not (2 <= to_base <= 36):
        return "ERROR"
    if not number:
        return "ERROR"

    digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    value = 0
    for ch in number.upper():
        if ch not in digits:
            return "ERROR"
        d = digits.index(ch)
        if d >= from_base:
            return "ERROR"
        value = value * from_base + d

    if value == 0:
        return "0"

    result = ""
    while value > 0:
        result = digits[value % to_base] + result
        value //= to_base
    return result
