def matrix_chain_multiplication(p):
    n = len(p) - 1  # 矩阵的数量

    # dp[i][j] 表示第i个矩阵到第j个矩阵相乘的最小代价
    # 其中矩阵i的维度是 p[i-1] x p[i]
    dp = [[float("inf")] * (n + 1) for _ in range(n + 1)]

    # 初始化:单个矩阵不需要相乘
    for i in range(1, n + 1):
        dp[i][i] = 0

    # l 是链长,从2开始(至少两个矩阵相乘)
    for l in range(2, n + 1):  # 链长
        for i in range(1, n - l + 2):  # 起始位置
            j = i + l - 1  # 结束位置

            # 尝试所有可能的分割点
            for k in range(i, j):
                cost = dp[i][k] + dp[k + 1][j] + p[i - 1] * p[k] * p[j]
                dp[i][j] = min(dp[i][j], cost)

    return dp[1][n]


# 读取输入并运行
if __name__ == "__main__":
    import sys

    input_data = input().strip()
    p = list(map(int, input_data.split()))

    result = matrix_chain_multiplication(p)
    print(result)