def get_string_of_int(n: int, gender: bool = True) -> str:
    """
    Get a stringified version of an int in range(0, 1000).
    gender is optional and is True for masculine, False for feminine.
    Raise an OverflowError if the number is not in that range.
    """
    if n in range(20):
        return \
            ["нуль", "один" if gender else "одна", "два" if gender else "две", "три", "четыре", "пять", "шесть", "семь",
             "восемь", "девять", "десять",
             "одиннадцать",
             "двенадцать", "тринадцать", "четырнадцать", "пятнадцать", "шестнадцать", "семнадцать", "восемнадцать",
             "девятнадцать"][n]
    if n in range(20, 100):
        n0 = n % 10
        n1 = n // 10
        output=[]
        output += [["", "", "двадцать", "тридцать", "сорок", "пятьдесят", "шестьдесят", "семьдесят", "восемьдесят",
              "девяносто"][n1]]
        output += [(["", "один" if gender else "одна", "два" if gender else "две", "три", "четыре", "пять", "шесть",
           "семь",
           "восемь", "девять"][n0])]
        return " ".join(output).strip()
    if n in range(100, 1000):
        n0 = n % 10
        n1 = n // 10 % 10
        n2 = n // 100
        output = ["", "сто", "двести", "триста", "четыреста", "пятьсот", "шестьсот", "семьсот", "восемьсот",
                  "девятьсот"][n2]
        output += (" " + get_string_of_int(n1 * 10 + n0, gender)) if n1 + n0 > 0 else ""
        return "".join(output).strip()
    raise OverflowError("{} not in range(0, 1000).".format(n))