def calculate_max_carpet_area(h, w):
    # Создаем таблицу для хранения результатов
    dp = [[0] * (w + 1) for _ in range(h + 1)]

    # Заполняем таблицу построчно
    for i in range(1, h + 1):
        for j in range(1, w + 1):
            # Площадь текущего ковра (единичный квадрат)
            carpet_area = (i * j)*2

            # Проверяем, помещается ли ковер внутри пола или другого ковра
            if i > 1:
                dp[i][j] = max(dp[i][j], dp[i-1][j] + carpet_area)
            if j > 1:
                dp[i][j] = max(dp[i][j], dp[i][j-1] + carpet_area)

    # Возвращаем максимальную суммарную площадь ковров
    return dp[h][w]

# Чтение входных данных
h, w = map(int, input().split())

# Вычисление и вывод результата
print(calculate_max_carpet_area(h, w))
