#include<iostream>
#include<algorithm>
using namespace std;

char ops[4] = {'+', '-', '*', '/'};
//两数计算
double cal(double db1, double db2, char op) {
    double result;
    switch (op) {
        case '+':
            result = db1 + db2;
            break;
        case '-':
            result = db1 - db2;
            break;
        case '*':
            result = db1 * db2;
            break;
        case '/':
            result = db1 / db2;
            break;
    };
    return result;
};
int main() {
    double num[4];
    cin >> num[0] >> num[1] >> num[2] >> num[3];
    sort(num, num + 4); //初始化为最小排序
    do                  //生成所有排列
    {//顺序计算,不加括号
        for (int i = 0; i < 4; i++) {
            double res;
            if (i == 3 && num[1] == 0)continue;
            else res = cal(num[0], num[1], ops[i]);
            for (int j = 0; j < 4; j++) {
                if (j == 3 && num[2] == 0)continue;
                else res = cal(res, num[2], ops[j]);
                for (int k = 0; k < 4; k++) {
                    if (k == 3 && num[3] == 0)continue;
                    else res = cal(res, num[3], ops[k]);
                    if (res == 24) {
                        cout << "true";
                        return 0;
                    }
                }
            }
        }
        //加括号,先计算num[1]和num[2]
        for (int i = 0; i < 4; i++) {
            double val12;
            double res;
            if (i == 3 && num[2] == 0)continue;
            else val12 = cal(num[1], num[2], ops[i]);
            //再计算val12和num[3]
            for (int j = 0; j < 4; j++) {
                if (j == 3 && num[3] == 0)continue;
                else res = cal(val12, num[3], ops[j]);
                for (int k = 0; k < 4; k++) {
                    if (k == 3 && res == 0)continue;
                    else res = cal(num[0], res, ops[k]);
                    if (res == 24) {
                        cout << "true";
                        return 0;
                    }
                }
            }
            //再顺序计算
            for (int j = 0; j < 4; j++) {
                if (j == 3 && val12 == 0)continue;
                else res = cal(num[0], val12,  ops[j]);
                for (int k = 0; k < 4; k++) {
                    if (k == 3 && num[3] == 0)continue;
                    else res = cal(res, num[3], ops[k]);
                    if (res == 24) {
                        cout << "true";
                        return 0;
                    }
                }
            }

        }
        //加括号,先计算num[2]和num[3]
        for (int i = 0; i < 4; i++) {
            double val23;
            double res;
            if (i == 3 && num[3] == 0)continue;
            else val23 = cal(num[2], num[3], ops[i]);
            //再计算val23和num[1]
            for (int j = 0; j < 4; j++) {
                if (j == 3 && num[1] == 0)continue;
                else res = cal(val23, num[1], ops[j]);
                for (int k = 0; k < 4; k++) {
                    if (k == 3 && num[0] == 0)continue;
                    else res = cal(res, num[0], ops[k]);
                    if (res == 24) {
                        cout << "true";
                        return 0;
                    }
                }
            }
            //再顺序计算
            for (int j = 0; j < 4; j++) {
                if (j == 3 && num[1] == 0)continue;
                else res = cal(num[0], num[1], ops[j]);
                for (int k = 0; k < 4; k++) {
                    if (k == 3 && val23 == 0)continue;
                    else res = cal(res, val23, ops[k]);
                    if (res == 24) {
                        cout << "true";
                        return 0;
                    }
                }
            }

        }

    } while (next_permutation(num,num + 4)); //next_permutation() 按字典序生成下一个排列,直到最大排列(如 [4,3,2,1])后返回 false。
    cout << "false";
    return 0;
}