#include <stdio.h>

// 計算兩數的最大公因數
int gcd(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

// 計算金屬塊的最大價值
int value(int type, int width, int height, int length) {
    // 1. 檢查金屬類型是否有效
    if (type != 79 && type != 47 && type != 29 && type != 82 && type != 26 && type != 22) {
        return -1;
    }

    // 2. 檢查長度、寬度、高度是否有效
    if (width <= 0 || height <= 0 || length <= 0) {
        return -2;
    }

    // 3. 計算最大正方體的邊長
    int side = gcd(width, height);
    side = gcd(side, length);

    // 4. 根據金屬類型設置單位價值
    int value_per_unit;
    if (type == 79) {
        value_per_unit = 30; // 金
    } else if (type == 47) {
        value_per_unit = 10; // 銀
    } else if (type == 29) {
        value_per_unit = 4;  // 銅
    } else if (type == 82) {
        value_per_unit = 5;  // 鉛
    } else if (type == 26) {
        value_per_unit = 3;  // 鐵
    } else {
        value_per_unit = 9;  // 鈦
    }

    // 5. 計算並回傳金屬塊的最大價值
    int volume = side * side * side;
    return value_per_unit * volume * volume;
}

int main() {
    int type, width, height, length;
    scanf("%d%d%d%d", &type, &width, &height, &length);
    printf("%d", value(type, width, height, length));
    return 0;
}
