为了保证数据精度,新加了个类,结果一大半时间在改类的bug。=-=哎

a, b, c, d = map(int, input().split()) 

class DDNum:
    def __init__(self, u, d=1):
        self.u = u
        self.d = d
        self.nan = False
    def add(self, o):
        if self.nan:
            return self
        if self.d != o.d:
            tmp_d = self.d * o.d
            self.u = self.u * o.d + o.u * self.d
            self.d = tmp_d
        else:
            self.u = self.u + o.u
        return self._yue_fen()
    def min(self, o):
        if self.nan:
            return self
        if self.d != o.d:
            tmp_d = self.d * o.d
            self.u = self.u * o.d - o.u * self.d
            self.d = tmp_d
        else:
            self.u = self.u - o.u
        return self._yue_fen()
    def mul(self, o):
        if self.nan:
            return self
        self.u *= o.u
        self.d *= o.d
        return self
    def div(self, o):
        if self.nan:
            return self
        self.u *= o.d
        self.d *= o.u
        if self.d == 0:
            self.nan = True
            return self
        return self
    def equal(self, o):
        tmp = DDNum(self.u, self.d)
        tmp.min(o)
        if tmp.u == 0 and not tmp.nan:
            return True
        else:
            return False
    def _yue_fen(self):
        # if self.u % self.d == 0:
        #     self.u = self.u // self.d
        #     self.d = 1
        return self
    def __repr__(self):
        return f"({self.u}/{self.d})"
    def copy(self):
        return DDNum(self.u, self.d)

def dfs(nums):
    # 只有一个数字
    if len(nums) == 1:
        return nums[0].equal(DDNum(24)) or nums[0].equal(DDNum(-24))
    for i in range(len(nums)):
        for j in range(i+1, len(nums)):
            tmp_nums = nums.copy()
            n1, n2 = nums[i].copy(), nums[j].copy()
            tmp_nums.pop(j)
            tmp_nums.pop(i)
            if dfs([n1.copy().add(n2)]+tmp_nums.copy()):
                return True
            if dfs([n1.copy().min(n2)]+tmp_nums.copy()):
                return True
            if dfs([n1.copy().mul(n2)]+tmp_nums.copy()):
                return True
            if dfs([n1.copy().div(n2)]+tmp_nums.copy()):
                return True
            if dfs([n2.copy().div(n1)]+tmp_nums.copy()):
                return True
    return False
print("true" if dfs([DDNum(a), DDNum(b), DDNum(c), DDNum(d)]) else "false")