
"""simple docstring"""




from __future__ import annotations

from typing import Any



def     __magic_name__		(					UpperCamelCase     :		list     )     ->						int:
    if not postfix_notation:
        return 0

    a__		=			{'+', '-', '*', '/'}
    a__		=			[]

    for token in postfix_notation:
        if token in operations:
            a__	,     a__		=			stack.pop(), stack.pop()
            if token == "+":
                stack.append(a + b     )
            elif token == "-":
                stack.append(a - b     )
            elif token == "*":
                stack.append(a * b     )
            else:
                if a * b < 0 and a % b != 0:
                    stack.append(a // b + 1     )
                else:
                    stack.append(a // b     )
        else:
            stack.append(int(UpperCamelCase     )     )

    return stack.pop()


if __name__ == "__main__":
    import doctest

    doctest.testmod()




"""simple docstring"""




def     __magic_name__		(					UpperCamelCase     :		int							,		UpperCamelCase     :		list[int]							,		UpperCamelCase     :		int     )     ->						int:

    def count_of_possible_combinations(UpperCamelCase     :		int     ) -> int:
        if target < 0:
            return 0
        if target == 0:
            return 1
        return sum(count_of_possible_combinations(target - item     ) for item in array     )

    return count_of_possible_combinations(UpperCamelCase     )



def     __magic_name__		(					UpperCamelCase     :		int							,		UpperCamelCase     :		list[int]							,		UpperCamelCase     :		int     )     ->						int:

    def count_of_possible_combinations_with_dp_array(
        UpperCamelCase     :		int							,		UpperCamelCase     :		list[int]     ) -> int:
        if target < 0:
            return 0
        if target == 0:
            return 1
        if dp_array[target] != -1:
            return dp_array[target]
        a__		=			sum(
            count_of_possible_combinations_with_dp_array(target - item							,		UpperCamelCase     )
            for item in array     )
        a__		=			answer
        return answer

    a__		=			[-1] * (target + 1)
    return count_of_possible_combinations_with_dp_array(UpperCamelCase							,		UpperCamelCase     )



def     __magic_name__		(					UpperCamelCase     :		int							,		UpperCamelCase     :		list[int]							,		UpperCamelCase     :		int     )     ->						int:
    a__		=			[0] * (target + 1)
    a__		=			1

    for i in range(1							,		target + 1     ):
        for j in range(UpperCamelCase     ):
            if i - array[j] >= 0:
                dp_array[i] += dp_array[i - array[j]]

    return dp_array[target]


if __name__ == "__main__":
    import doctest

    doctest.testmod()
    a		:       Optional[Any]     						=       3
    a		:       List[str]     						=       5
    a		:       Dict     						=       [1, 2, 5]
    print(combination_sum_iv(n, array, target))


