#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

double compute(double x,double y,char op){
    switch (op) {
        case '+': return x+y;
        case '-': return x-y;
        case '*': return x*y;
        case '/': return y!=0?x/y:0;
        default: return 0;
    }
}

bool dfs(vector<double> &num,int n,vector<char> &op){
    if (num[3]>24 || (n==3&&num[3]!=24)){
        // 大于24点、三个符号位填充完毕结果不等于24
        return false;
    } else if (n==3&&num[3]==24){
        return true;
    }
    for (auto o:op) {
        double tem = num[n+1];
        num[n+1] = compute(num[n],num[n+1],o);
        if (!dfs(num,n+1,op)){
            num[n+1] = tem;
        } else{
            return true;
        }
    }
    return false;
}

int main(){
    vector<double> arr(4,0);
    vector<char> op = {'+','-','*','/'};
    while (cin>>arr[0]>>arr[1]>>arr[2]>>arr[3]){
        bool flag = false;
        sort(arr.begin(),arr.end());
        do {
            if (flag) break;
            flag = dfs(arr,0,op);
        } while (next_permutation(arr.begin(),arr.end()));
        if (flag) cout<<"true"<<endl;
        else cout<<"false"<<endl;
    }

    return 0;
}