#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
const double EPSILON = 1e-6;
bool dfs(vector<double>& nums) {
//如果只剩一个数,就判断它是不是 24
if (nums.size() == 1) {
return fabs(nums[0] - 24.0) < EPSILON;
}
//枚举两个数进行操作
for (int i = 0; i < nums.size(); ++i) {
for (int j = 0; j < nums.size(); ++j) {
if (i == j) continue;
//剩下的数收集起来
vector<double> next;
for (int k = 0; k < nums.size(); ++k) {
if (k != i && k != j) {
next.push_back(nums[k]);
}
}
// 枚举运算结果(+-*/所有可能的操作)
double a = nums[i], b = nums[j];
vector<double> candidates = {a + b, a - b, b - a, a * b};
if (fabs(b) > EPSILON) candidates.push_back(a / b);
if (fabs(a) > EPSILON) candidates.push_back(b / a);
//继续递归
for (double val : candidates) {
next.push_back(val);
if (dfs(next)) return true;
next.pop_back();
}
}
}
return false;
}
int main() {
vector<double> nums(4);
for (int i = 0; i < 4; ++i) {
cin >> nums[i];
}
if (dfs(nums)) {
cout << "true" << endl;
} else {
cout << "false" << endl;
}
return 0;
}